首页
论坛
课程
招聘
[原创]FART:ART环境下基于主动调用的自动化脱壳方案
2019-7-15 18:26 58744

[原创]FART:ART环境下基于主动调用的自动化脱壳方案

2019-7-15 18:26
58744
收藏
点赞37
打赏
分享
打赏 + 150.00
打赏次数 2 金额 + 150.00
 
赞赏  koflfy   +100.00 2019/08/13 向楼主学到很多东西,诚心感谢。
赞赏  koflfy   +50.00 2019/07/16 精品文章~
最新回复 (114)
雪    币: 38
活跃值: 活跃值 (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chilun 活跃值 2020-3-31 11:43
101
0
大佬,github:https://github.com/hanbinglengyue/FART这个里的源码是只能放到aosp6.0里吗?我把它放到aosp8.0里编译,需要改代码吗?
雪    币: 691
活跃值: 活跃值 (13264)
能力值: ( LV9,RANK:216 )
在线值:
发帖
回帖
粉丝
0x指纹 活跃值 4 2020-4-2 17:28
102
0
学习学习学习
雪    币: 382
活跃值: 活跃值 (381)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
wx_A.R 活跃值 2020-4-15 22:08
103
0
大佬啊,moto nexus6 刷机之后,脱壳,有的app会崩溃,关键部分的dex没有dump下来,app是有什么对抗吗?
雪    币: 2102
活跃值: 活跃值 (715)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
WindStormy 活跃值 2 2020-4-19 02:22
104
0

咨询一下hanbing大佬,既然很多函数是在本身执行后才恢复的,Fart是在哪里实现主动调用函数,使函数真正走到解释执行的入口方法Excute()的呢?

雪    币: 382
活跃值: 活跃值 (381)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
wx_A.R 活跃值 2020-4-20 15:02
105
0
鹅厂某固样本,dex dump没有问题,但是method CodeItem dump不全。
雪    币: 1733
活跃值: 活跃值 (555)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
弱冠甕卿还仓 活跃值 2020-7-31 09:55
106
0
FuckCyber 看了楼主的思路,真的是非常巧妙,而且大佬给出的修复脚本确实是非常好。这篇帖子的亮点我觉得对于我来说最重要的就是亮点,一个是ART下的主动调用思路和设计,一个就是大佬的python修复脚本。首先大佬设计 ...
老铁求个修复脚本,小白写不了这么长的代码
雪    币: 18
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_jqtrbzee 活跃值 2020-10-20 23:35
107
0
hanbingle 抱歉,修复合成dex的版本不会提供,你可以自行修改python修复脚本即可
群里有合成dex脚本不
雪    币: 0
活跃值: 活跃值 (77)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
黑色刺客 活跃值 2020-11-15 18:33
108
0
hanbingle 欢迎共同学习,共同进步

请问一下,frida的脚本frida_fart_hook.js跑的时候dumpcodeitem函数里的

var codeitemlength = funcGetCodeItemLength(ptr(codeitemstartaddr));这一行报错


=================================

addrGetCodeItemLength-> 0x9191c561

funcGetCodeItemLength-> 0x9191c561

codeitemstartaddr-> 0x76a17ef6

Error: access violation accessing 0xd36b59e6

============好像系统版本用错了,我那个dex是cdex格式的

最后于 2020-11-15 19:02 被黑色刺客编辑 ,原因:
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
万里星河 活跃值 2021-1-23 17:45
110
0
大佬着实牛逼 膜拜一下 但修复的python脚本我这里跑不起来 我是py3  是版本原因吗
雪    币: 98
活跃值: 活跃值 (150)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ChineseAStar 活跃值 2021-2-23 14:58
111
0
万里星河 大佬着实牛逼 膜拜一下 但修复的python脚本我这里跑不起来 我是py3 是版本原因吗
看脚本里输出命令的特点,明显是python2的
雪    币: 211
活跃值: 活跃值 (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
flyocean 活跃值 2021-4-22 09:48
112
0
尝试了一下,真心不错,学习了。专业!
雪    币: 21
活跃值: 活跃值 (232)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jfztaq 活跃值 2021-5-8 19:34
113
0
为什么不能自动保存
雪    币: 152
活跃值: 活跃值 (1292)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
huaerxiela 活跃值 2021-10-14 19:41
114
0

dddd

最后于 2021-10-14 19:42 被huaerxiela编辑 ,原因:
雪    币: 152
活跃值: 活跃值 (1292)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
huaerxiela 活跃值 2021-10-14 19:43
115
0
WindStormy ![](upload/attach/202004/849838_Z8DBKSQE294CMEE.png) ### 咨询一下hanbing大佬,既然很多函数是在本身执行后才恢复的,Fart是在哪 ...

小菜花看了文章之后冒昧替大佬回答下【Fart实现主动调用函数逻辑的大致流程】,如下:
作者是在壳完成执行权的交付之后,选取了一个合适的点通过反射也好,参数间接获取也罢拿到了应用最终的classloader,然后从classloader->pathList->遍历dexElements->DexFile->mCookie, 通过mCookie调用DexFile的一个static方法,好像是getClassNameList,拿到所有类名,然后再去loadClass,通过反射拿到类的所有方法,,然后去根据ArtMethod去构造自己的fartInvoke,加上参数标识,然后当调用到ArtMethod的invoke的时候如果发现是fart的标识,就开始根据artmethod对象的指针获取codeitemoffset,然后根据dex-codeitem文件格式,计算tryitems存在与否的不同情况的codeitem长度,最终完成函数粒度的指令dump

可能有理解不当之处,仅供参考。。。

最后于 2021-10-14 19:49 被huaerxiela编辑 ,原因:
游客
登录 | 注册 方可回帖
返回