首页
社区
课程
招聘
[原创]不一样的玩法儿:基于反编译器的Frida支持
发表于: 2021-7-14 15:35 33800

[原创]不一样的玩法儿:基于反编译器的Frida支持

gjden 活跃值
14
2021-7-14 15:35
33800

一、前言


最近花了些时间来考虑如何结合Frida, 让我们可以在反编译代码上直接对方法或者类进行hook或者调用,初想感觉挺简单,但是实现过程中也有不少坑,比如:1).自动生成js代码,除了定义代码模板外还得考虑静态方法,构造函数,内部类,匿名类,以及混淆后的不可见字符的类或者方法等等问题,以及调用一个方法时参数确定与实例化问题,可能还需要用户介入编辑代码,因此需要提供代码编辑能力;2)独立于命令行窗口,需要自己写一个shell窗口来显示Frida的输出以及命令输入或者其他的交互。

最后花了一些时间来实现这样的一种支持,好在这些问题都得到了解决。结合Frida框架,新的GDA反编译器能够解决如下几个问题:


    1. 如果当前反编译的APK未安装在设备中,则自动安装并启动APP

    2. 自动处理静态方法、构造函数、内部类、匿名类、以及混淆后的不可见字符的类或者方法。

    3. 在反编译代码的基础上,想HOOK那儿就HOOK那儿,无需写任何JS代码便可以看到方法的参数值和返回值。

    4. 在反编译代码的基础上,想执行那儿就执行那儿,GDA自动完成适当地做自动代码生成,最小化代码编写。

    5. 可以实现基于Frida的“带壳HOOK/方法调用”功能,反编译DUMP出的DEX文件,只要android设备中安装有原APP即可自动关联。

    6. 完全自定义JS脚本,自动生成建议代码,满足类似需要修改参数,修改返回值或者其他的需求。


解决了这几个问题,基本能覆盖大部分的工作需求,比如常常遇到设置HOOKHOOK点无法执行;漏洞验证时,无法触发上层调用者等等问题。当然如果代码分析清楚了,也可以写JS代码实现,但在反编译器中操作会方便很多。先上一个效果图:


感谢Mobile Security, GDA 对Frida 的支持得到了Frida 官方的关注和转发,感谢@漏网之鱼同学给予的支持和建议



二、准备工作


下载GDA:


https://github.com/charles2gan/GDA-android-reversing-Tool/releases


       http://www.gda.wiki:9090/


安装python+Frida(网上很多安装教程),确保Frida能够正常使用,。


pip3 install frida

pip3 install frida-tools


验证Frida是否安装成功:Frida --version


三、如何上手



GDA中,你可以实现“指哪儿打哪儿”、“所见即所得”的动态分析效果。因为Fridajava层的HOOK是以方法为单位的,所以对于如下反编译代码:



你只需要右键单击便可进行HOOK或者执行你所点击的方法,同时能够看到动态执行的结果。

上图的反编译代码中1,2,3分别代表三种可以进行操作的点,鼠标单击右键可以对目标做HOOK、执行等操作:右键点击1可以HOOK或者执行当前反编译的方法;2是当前方法调用的方法;3是类对象。1,2既可以做方法的HOOK也可以做类的HOOK3只能做类的HOOK

代码中任何被调用的类和方法都可以直接进行HOOK.



上图是右键菜单中对Frida支持的功能,其中:


1)方法HOOK:第一次HOOK时自动安装并启动当前分析的APK文件,此后做HOOK时不重启APP.

2)方法重启HOOK:每次执行HOOK时都会重启APP.

    



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2021-7-17 08:54 被gjden编辑 ,原因:
收藏
免费 57
支持
分享
最新回复 (97)
雪    币: 5235
活跃值: (3260)
能力值: ( LV10,RANK:175 )
在线值:
发帖
回帖
粉丝
2
卧槽  这个牛逼  大佬强
2021-7-14 15:46
1
雪    币: 5330
活跃值: (5464)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
卧槽,牛逼
2021-7-14 15:49
0
雪    币: 986
活跃值: (6167)
能力值: ( LV7,RANK:115 )
在线值:
发帖
回帖
粉丝
4
太强了
2021-7-14 15:53
0
雪    币: 26399
活跃值: (63267)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
5
感谢分享!
2021-7-14 15:54
1
雪    币: 1451
活跃值: (2069)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
6
太强了
2021-7-14 15:59
0
雪    币: 14501
活跃值: (17498)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
7
感谢分享
2021-7-14 16:01
0
雪    币: 1243
活跃值: (347)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
卧槽,牛逼
2021-7-14 16:06
0
雪    币: 3017
活跃值: (27717)
能力值: (RANK:420 )
在线值:
发帖
回帖
粉丝
9
老哥给力,动静结合,分析的时候更方便了,又降低了分析的难度
2021-7-14 16:09
0
雪    币: 1014
活跃值: (582)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
6666666666太强了
2021-7-14 16:21
0
雪    币: 1368
活跃值: (1450)
能力值: ( LV5,RANK:63 )
在线值:
发帖
回帖
粉丝
11
强啊,
2021-7-14 16:37
1
雪    币: 2973
活跃值: (4886)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
强,拜读
2021-7-14 18:41
0
雪    币: 576
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
mark,感谢分享
2021-7-14 19:10
0
雪    币: 136
活跃值: (1465)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
14
niubility!
2021-7-14 20:10
0
雪    币: 260
活跃值: (259)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
15
挖槽,太牛逼了,已经下载试用。
2021-7-14 20:36
0
雪    币: 1223
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
太强大了,最牛群主啊!马上去更新新版本。
2021-7-14 22:03
0
雪    币: 7
活跃值: (263)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这个着实很牛B
2021-7-14 22:19
0
雪    币: 2253
活跃值: (6638)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
18

太强了,我只想说这真是小母牛敲门,牛逼到家了。

最后于 2021-7-14 22:58 被fjqisba编辑 ,原因:
2021-7-14 22:56
0
雪    币: 185
活跃值: (477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
牛逼的功能 明天更新试试
2021-7-14 23:13
0
雪    币: 298
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
太强了
2021-7-15 02:27
0
雪    币: 6573
活跃值: (3873)
能力值: (RANK:200 )
在线值:
发帖
回帖
粉丝
21
不错的功能
2021-7-15 07:22
0
雪    币: 499
活跃值: (2189)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
22
tql 
2021-7-15 09:02
0
雪    币: 154
活跃值: (3786)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
23
niubi
2021-7-15 10:49
0
雪    币: 123
活跃值: (1242)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
24
nice
2021-7-15 10:54
0
雪    币: 7201
活跃值: (21965)
能力值: ( LV12,RANK:550 )
在线值:
发帖
回帖
粉丝
25
太强了
2021-7-15 12:16
0
游客
登录 | 注册 方可回帖
返回
//