首页
论坛
课程
招聘
[原创] Apolo插件实战-dex反优化后trace代码
2022-5-28 00:49 4254

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

2022-5-28 00:49
4254

背景

  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交流群

 


[2022冬季班]《安卓高级研修班(网课)》月薪两万班招生中~

最后于 2022-5-28 14:23 被WaxMoon编辑 ,原因:
收藏
点赞1
打赏
分享
最新回复 (3)
雪    币: 27
活跃值: 活跃值 (727)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
amwpecel 活跃值 2022-5-28 09:47
2
0
和 DDMS 的trace 功能相比如何?
雪    币: 269
活跃值: 活跃值 (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WaxMoon 活跃值 2022-5-28 10:00
3
0
amwpecel 和 DDMS 的trace 功能相比如何?
用ddms trace,是调试器行为,这对逆向分析人员来讲,不太实用,因为app可能会检测调试器。
雪    币: 7
活跃值: 活跃值 (156)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
带带波波 活跃值 2022-5-29 19:13
4
0
加个微信大牛,找你业务合作不是广告,看到加我微信谢谢 H1427133740
游客
登录 | 注册 方可回帖
返回