首页
社区
课程
招聘
[求助]xposed方法求助
发表于: 2019-5-11 18:07 3470

[求助]xposed方法求助

2019-5-11 18:07
3470
老哥们好:
       想请教一下,在使用xposed进行hook的时候,如果把自己写的服务在模块hook的其他进程中开启运行,因为需要在清单文件配置,不懂.看了一下PackagemanagerService的启动流程,也不是很理解;先谢谢了!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-5-11 18:08 被Toseven编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 1
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
4年 andorid开发经验 表示 读不懂
2019-5-12 11:10
0
雪    币: 182
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
额  就是hook修改清单文件呀
2019-5-13 09:41
0
雪    币: 914
活跃值: (334)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
xml最终也是解析的,直接改解析后的结果,比如加多一个静态接收器,服务
2019-5-13 12:32
0
雪    币: 182
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我是一只马鹿 xml最终也是解析的,直接改解析后的结果,比如加多一个静态接收器,服务
老哥,那应该在哪修改呢,我找到com.android.server.pm.PackageManagerService里面,有个scanPackageTracedLI方法,是解析apk的吧,您知道吗?
2019-5-13 13:58
0
雪    币: 914
活跃值: (334)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Toseven 老哥,那应该在哪修改呢,我找到com.android.server.pm.PackageManagerService里面,有个scanPackageTracedLI方法,是解析apk的吧,您知道吗?
xxx.content.pm.Parser这个类是解析apk的
2019-5-13 15:28
0
雪    币: 182
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我是一只马鹿 xxx.content.pm.Parser这个类是解析apk的
android.content.pm.PackageParser对吧,我在pms类里面的方法找到的
2019-5-13 15:36
0
雪    币: 914
活跃值: (334)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
Toseven android.content.pm.PackageParser对吧,我在pms类里面的方法找到的
应该是,源码太多东西,我只记得大概
2019-5-13 15:38
0
雪    币: 2157
活跃值: (4532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
修改 AndroidManifest.xml   可以参考app  https://security.tencent.com/index.php/opensource/detail/17  
修改debugable节点 其他节点类似
反编译后的核心代码如下
```
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
        XposedBridge.hookAllMethods(XposedHelpers.findClass("com.android.server.pm.PackageManagerService", lpparam.classLoader), "getPackageInfo", new XC_MethodHook() {
            /* access modifiers changed from: protected */
            public void afterHookedMethod(MethodHookParam param) throws Throwable {
                PackageInfo packageInfo = (PackageInfo) param.getResult();
                if (packageInfo != null) {
                    ApplicationInfo appinfo = packageInfo.applicationInfo;
                    int flags = appinfo.flags;
                    Log.i("BDOpener", "Load App : " + appinfo.packageName);
                    Log.i("BDOpener", "==== After Hook ====");
                    if ((flags & 32768) == 0) {
                        flags |= 32768;
                    }
                    if ((flags & 2) == 0) {
                        flags |= 2;
                    }
                    appinfo.flags = flags;
                    param.setResult(packageInfo);
                    Log.i("BDOpener", "flags = " + flags);
                    Main.isDebugable(appinfo);
                    Main.isBackup(appinfo);
                }
            }
        });
    }

    public static boolean isDebugable(ApplicationInfo info) {
        try {
            if ((info.flags & 2) != 0) {
                Log.i("BDOpener", "Open Debugable");
                return true;
            }
        } catch (Exception e) {
        }
        Log.i("BDOpener", "Close Debugable");
        return false;
    }

    public static boolean isBackup(ApplicationInfo info) {
        try {
            if ((info.flags & 32768) != 0) {
                Log.i("BDOpener", "Open Backup");
                return true;
            }
        } catch (Exception e) {
        }
        Log.i("BDOpener", "Close Backup");
        return false;
    }
```
2019-5-14 11:59
1
雪    币: 182
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
小黄鸭爱学习 修改 AndroidManifest.xml 可以参考app https://security.tencent.com/index.php/opensource/detail/17 修改d ...
好的 ,谢谢老哥!修改已经存在可以这样,那如果要加一个新的service,好像不能这样吧
最后于 2019-5-16 16:26 被Toseven编辑 ,原因: 修改
2019-5-16 16:06
0
雪    币: 2157
活跃值: (4532)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
Toseven 小黄鸭爱学习 修改 AndroidManifest.xml 可以参考app https://security.tencent.com/index.php ...
思路是一样的 如果你清楚的AndroidManifest.xml解析过程  (可以参考 https://juejin.im/entry/579f0b79165abd006115c5a4)
就可以在 scanPakcageLI 方法里面干预整个解析过程 。具体实现周末我再看看,你可以试试。
2019-5-17 09:27
0
雪    币: 182
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
小黄鸭爱学习 思路是一样的 如果你清楚的AndroidManifest.xml解析过程 (可以参考 https://juejin.im/entry/579f0b79165abd006115c5a4) 就可以在 ...
恩恩,好的,我感觉有点陷入了死循环,scanPackageLI 方法里面需要一个Package参数,而解析就是在package中增加service对象,这个service.....我再理一理 ;谢谢哥!
2019-5-18 14:16
0
游客
登录 | 注册 方可回帖
返回
//