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

[求助]xposed方法求助

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

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

最后于 2019-5-11 18:08 被Toseven编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 1
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
4年 andorid开发经验 表示 读不懂
2019-5-12 11:10
0
雪    币: 162
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
额  就是hook修改清单文件呀
2019-5-13 09:41
0
雪    币: 913
活跃值: (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
xml最终也是解析的,直接改解析后的结果,比如加多一个静态接收器,服务
2019-5-13 12:32
0
雪    币: 162
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我是一只马鹿 xml最终也是解析的,直接改解析后的结果,比如加多一个静态接收器,服务
老哥,那应该在哪修改呢,我找到com.android.server.pm.PackageManagerService里面,有个scanPackageTracedLI方法,是解析apk的吧,您知道吗?
2019-5-13 13:58
0
雪    币: 913
活跃值: (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Toseven 老哥,那应该在哪修改呢,我找到com.android.server.pm.PackageManagerService里面,有个scanPackageTracedLI方法,是解析apk的吧,您知道吗?
xxx.content.pm.Parser这个类是解析apk的
2019-5-13 15:28
0
雪    币: 162
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我是一只马鹿 xxx.content.pm.Parser这个类是解析apk的
android.content.pm.PackageParser对吧,我在pms类里面的方法找到的
2019-5-13 15:36
0
雪    币: 913
活跃值: (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
Toseven android.content.pm.PackageParser对吧,我在pms类里面的方法找到的
应该是,源码太多东西,我只记得大概
2019-5-13 15:38
0
雪    币: 2630
活跃值: (5097)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
修改 AndroidManifest.xml   可以参考app  171K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5k6i4c8W2L8X3y4W2L8Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7q4)9J5c8X3!0H3k6h3&6K6L8%4g2J5j5$3g2Q4x3V1k6V1k6i4c8S2K9h3I4Q4x3V1j5I4y4#2)9J5y4X3&6T1M7%4m8Q4x3@1u0Q4x3U0k6F1j5Y4y4H3i4K6y4n7
修改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
雪    币: 162
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
小黄鸭爱学习 修改 AndroidManifest.xml 可以参考app 68eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5k6i4c8W2L8X3y4W2L8Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7q4)9J5c8X3!0H3k6h3&6K6L8%4g2J5j5$3g2Q4x3V1k6V1k6i4c8S2K9h3I4Q4x3V1j5I4y4H3`.`. 修改d ...
好的 ,谢谢老哥!修改已经存在可以这样,那如果要加一个新的service,好像不能这样吧
最后于 2019-5-16 16:26 被Toseven编辑 ,原因: 修改
2019-5-16 16:06
0
雪    币: 2630
活跃值: (5097)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
Toseven 小黄鸭爱学习 修改 AndroidManifest.xml 可以参考app 523K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6k6h3y4#2M7X3W2@1P5g2)9J5k6i4c8W2L8X3y4W2L8Y4c8Q4x3X3g2U0L8$3#2Q4x3V1k6A6L8X3c8W2P5q4)9J5k6i4m8Z5M7l9`.`. ...
思路是一样的 如果你清楚的AndroidManifest.xml解析过程  (可以参考 5c2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6B7N6h3g2B7K9h3&6Q4x3X3g2A6L8g2)9J5c8X3g2F1N6s2u0&6i4K6u0r3y4e0M7&6k6U0m8T1y4K6V1I4y4U0g2S2j5X3b7H3x3o6j5I4x3e0g2U0y4h3p5@1i4K6t1&6
就可以在 scanPakcageLI 方法里面干预整个解析过程 。具体实现周末我再看看,你可以试试。
2019-5-17 09:27
0
雪    币: 162
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
小黄鸭爱学习 思路是一样的 如果你清楚的AndroidManifest.xml解析过程 (可以参考 8e2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6B7N6h3g2B7K9h3&6Q4x3X3g2A6L8g2)9J5c8X3g2F1N6s2u0&6i4K6u0r3y4e0M7&6k6U0m8T1y4K6V1I4y4U0g2S2j5X3b7H3x3o6j5I4x3e0g2U0y4h3p5@1i4K6t1&6 就可以在 ...
恩恩,好的,我感觉有点陷入了死循环,scanPackageLI 方法里面需要一个Package参数,而解析就是在package中增加service对象,这个service.....我再理一理 ;谢谢哥!
2019-5-18 14:16
0
游客
登录 | 注册 方可回帖
返回