首页
社区
课程
招聘
[原创] Apolo插件实战-dex反优化后trace代码
发表于: 2022-5-28 00:49 6340

[原创] Apolo插件实战-dex反优化后trace代码

2022-5-28 00:49
6340

背景

  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编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 17
活跃值: (891)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
和 DDMS 的trace 功能相比如何?
2022-5-28 09:47
0
雪    币: 509
活跃值: (778)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
amwpecel 和 DDMS 的trace 功能相比如何?
用ddms trace,是调试器行为,这对逆向分析人员来讲,不太实用,因为app可能会检测调试器。
2022-5-28 10:00
0
游客
登录 | 注册 方可回帖
返回
//