-
-
[原创] Apolo插件实战-dex反优化后trace代码
-
发表于:
2022-5-28 00:49
6341
-
[原创] Apolo插件实战-dex反优化后trace代码
背景
Apolo插件提供了一些轻量级art hook接口,并且已经发布到maven central,接入非常方便。将来也会提供更多的周边功能,其目的是为了帮助大家逆向/安全分析,app合规检测等。
今天,给大家带来ApoloPlugin模块新功能,dex反优化trace java层代码执行流程。
参考文档
项目主页
Apolo插件实战-ROM环境注入app分析其行为
dex反优化trace使用场景
- app加固,脱壳困难? 通过trace分析程序流
- 不清楚对一款app如何下手? 通过trace找切入点
- app是否有不合规调用? 通过trace抓取log,分析log即可
- 入门学习安卓framework,会有些许帮助
如何开启trace
注意:trace功能在ApoloPlugin:0.0.4版本才引入
第一步:必须调用ArtEngine.setHookMode
1 2 3 4 5 6 7 8 9 10 11 12 13 | @IntDef ({
MODE_SIMPLE,
MODE_TRAMPOLINE,
MODE_INTERPRET
})
public @interface MODE {}
public static final int MODE_SIMPLE = 0x1 ;
public static final int MODE_TRAMPOLINE = 0x1 << 1 ;
public static final int MODE_INTERPRET = 0x1 << 2 ;
public static void setHookMode(@MODE int mode) {
sInterpretMode = mode;
}
|
HookMode属性
您可以修改HookMode为simple、trampo、interpret三种模式,分别对应三种场景:
1) simple: 如果您只需要关注app是否调用了系统api,此模式已够用
2) trampo: 此模式暂时先不支持,还有些许问题,比如性能
3) interpret: 解释执行模式,逆向hook/trace等场景使用
第二步:调用ArtEngine.enableInterpretLog函数
可以设置为ON、OFF两种选择。当为ON时,adb log会有大量log。
第三步:调用ArtEngine.startHook
如果您不hook java,也需要调用此接口
友情提醒: 会造成app卡顿比较严重
案例-trace某讯聊天软件
欢迎加入Apolo交流群
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2022-5-28 14:23
被WaxMoon编辑
,原因: