首页
社区
课程
招聘
[求助]app被加固了,该怎么用xposed模块hook?
发表于: 2016-8-9 10:39 14661

[求助]app被加固了,该怎么用xposed模块hook?

2016-8-9 10:39
14661
还有模块本身被加固了,怎么也会hook失败呢?刚学hook,有没有哪位大神或懂这方面的帮忙指点一下!

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 3712
活跃值: (1736)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
既然APP被加固了,首先就是脱壳或者是解密,脱完壳,真正的程序还原了才好接下来分析。xposed模块只能hook java层,一般用Substrate,可以通过hook来过反调试,只有理清了逻辑才好接下来使用Hook
2016-8-9 11:28
0
雪    币: 2325
活跃值: (1058)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
楼上说的不错,不过,有时候有些App只是ClassLoader被壳换了,这个时候,选对ClassLoader就可以了。比如这样:


public EncryptHook(ClassLoader cl) {
super();

XposedBridge.log("Now hooking........");
try {
clzStubApp = (Class<?>) XposedHelpers.findClass("com.qihoo.util.StubApplication", cl);
XposedHelpers.findAndHookMethod(clzStubApp,
"getNewAppInstance",
Context.class,
new XC_MethodHook() {

@Override
protected void afterHookedMethod(MethodHookParam param)
throws Throwable {
Context ctx = (Context) param.args[0];
ClassLoader classLoader = ctx.getClassLoader();

Class<?> clzA = (Class<?>) XposedHelpers.findClass("com.xxx.sdk.encrypt.a", classLoader);
XposedHelpers.findAndHookMethod(clzA, "a",
byte[].class, new EncryptAMethod());

super.afterHookedMethod(param);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}

public static class EncryptAMethod extends XC_MethodHook {

@Override
protected void afterHookedMethod(MethodHookParam param)
throws Throwable {
byte[] v0 = (byte[]) param.args[0];
String ret = (String) param.getResult();

CommLog.e(TAG, "v0: " + Comm.bytesToHexString(v0, v0.length));
CommLog.e(TAG, "ret: " + ret);

super.afterHookedMethod(param);
}
}
2016-8-9 16:30
0
雪    币: 1595
活跃值: (2539)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
非虫大大,就是我专门做了个插件去hook我弄的一个例子,这时候可以hook成功,可以达到修改例子中某个函数的返回值,但是当我把这个例子用360加固后,就不能hook成功了,然后我又试了下,把插件本身加固,而例子没加固,这时候同样也不能hook成功。这是什么原因呢?
2016-8-9 17:44
0
雪    币: 191
活跃值: (195)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
哈哈围观飞虫大哥,说的有道理,楼主建议你把不能hook的那部分代码贴出来,对比一下
2016-8-10 19:40
0
雪    币: 12
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
@ 楼主,@非虫  我也正在搞这个问题,我用未加固的apk可以hook成功,用阿里加固后的apk hook失败,阿里加固后是变成了com.ali.mobisecenhance,只有这个类,其他类隐藏在了libmobisecy1.so中,但整个java程序的主体结构没有变化,我原来需要hook的类都还在,但函数内容都变成了runtimeexception 所以我这样的话,原来的xposed钩的函数和类的名称应该也不用变化吧,但加固后的程序不能勾住了。
xposeme.zip是apk代码
apk 是加固后的apk
xposer是hook的模块代码
上传的附件:
2016-8-12 10:28
0
雪    币: 1595
活跃值: (2539)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
7
@licang  @非虫   关键是怎么找到这个classloader啊,毕竟都已经被加固了
2016-8-19 13:11
0
雪    币: 12
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
加固后开始的application变成stubapplication, 但具体的包名类名还都在androidmanifest.xml中, 可以反编译看到, 我现在使用的阿里的壳,所有函数都变成了runtimeexception,这些函数的具体内容会动态解析出来,我想用xposed是应该钩住的,可是测试发现失败,目前也不知道什么原因,正在查找相关方法,欢迎有兴趣的一起解决。
2016-8-20 09:22
0
雪    币: 1595
活跃值: (2539)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
9
非虫大大 现在没有那个getNewAppInstance方法了,又该如何获取这个这个classloader呢?
2016-8-31 09:05
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
他是动态加载的,xposed在hook的时候他还没加载呢,cydia肯定能hook上
2016-11-13 13:45
0
游客
登录 | 注册 方可回帖
返回