FART脱壳机制作

博客介绍了安卓APP脱壳的重要性及制作FART脱壳机的过程。需准备谷歌亲儿子手机、相关文章及编译好的rom镜像,按步骤下载、解压rom包,配置adb和fastboot命令,刷入新ROM。安装待脱壳应用并赋予权限即可自动脱壳,还说明了脱壳文件查看及修复相关要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

几乎所有在APP应用平台的软件,都有壳,若想进一步逆向,查看APP的代码、加解密函数、或者逆向协议,第一步都是要脱壳,脱壳的重要性不言而喻。

FBI Warnning

感谢寒冰、r0ysue大佬,大佬们的gayhub和个人主页在片尾。
原材料

  • 谷歌亲儿子手机一部,pixel或者nexus任何版本都阔以,系统Android8.10
  • 寒冰巨佬的fart文章,深入理解脱壳原理
  • r0ysue姐编译好的fart rom镜像,请放心食用。

过程

首先根据手机下载对应的rom包。
链接:https://pan.baidu.com/s/1zAYliYbkagdUUsykww_L4g 提取码:vv5u
在这里插入图片描述
在这里插入图片描述
这是手机型号。
在这里插入图片描述

下载解压后,会发现里边还有一个image-marlin-opm1.xxxxx.zip的文件,直接解压到这里,会多出来system.img、vendor.img等文件。

这时候,将手机使用USB连入电脑,并开启USB调试,进入fastboot模式,pixel是按照音量向下键和电源键进入的。

你还需要adb,fastboot命令,下载链接:
链接: https://pan.baidu.com/s/1AIJ2qzl-MZUkN9jOoxjOKQ 密码: inag

在这里插入图片描述

将AdbWinApi.dll和下面的dll放到C:/Windows/System

将adb.exe和fastboot.exe放到C:/Windows/System32
然后点击flash-all.bat即可。
在这里插入图片描述

这里的FAILED,不用太在意,我一开始也是迷茫了好一会,但是看到手机已经重新刷入了新ROM,就知道完工了。
在这里插入图片描述

验证脱壳

adb logcat | grep "fart"监控fart脱壳日志。

如何脱壳呢?很简单,将要脱壳的应用安装,然后赋予读写权限,然后启动就完事了,后台就能够看到fart脱壳日志开始整活了,它是自动脱壳。

进入/sdcard/fart,可见脱壳的文件。
在这里插入图片描述
在这里插入图片描述

然后可以看到有bin、txt、dex三种文件。

  • 带excute关键字的dex文件是在excute脱壳点脱下来的dex文件,我们可以直接在jadx里面打开这个dex。关于该脱壳点的更多信息可以看《拨云见日:安卓APP脱壳的本质以及如何快速发现ART下的脱壳点》。
  • 带excute关键字的classlist_execute.txt文件,该文件是dex中所有类的类列表,类名是签名形式的以L开头,表示它是一个类,$后面是类中的方法。
  • 在修复文件的选择上,首先其实只需要看有bin函数体文件的,没有bin文件的dex是处于不同Classloader中的dex,那些是些系统库或者壳本身,不是我们关心的对象。(修复脚本地址:https://github.com/hanbinglengyue/FART)
python fart.py -d xxx.dex -i xxx.bin >> repired.txt

总结一下,并不是所有dex都需要修复的,有bin的才能修复,当你dump出来的方法体是空的时候,并且有bin文件,然后才要去修复,大部分不需要修复,直接在dex就有了。
点到为止,壳已经脱完了,制作FART脱壳机,第一步搞定。

Refer:

r0ysue姐的github:https://github.com/r0ysue/AndroidSecurityStudy

寒冰大佬:https://bbs.pediy.com/user-home-632473.htm

这个工具的工作原理,它的壳特征和编译器特征保存在HackFans.txt里面,能识别出来的壳,基本上都有对应的脱壳函数,用壳特征脱壳,可以脱壳,对于一些不好特殊的壳你可以用OEP侦测来脱壳,这要依赖编译器特征,你也可以自己添加编译器特征到HackFans.txt 对某些未知壳,可能能用未知壳脱壳选项搞定,它里面的原理也是用了编译器入口处信息. 修改历史: 1.对有IAT加密情况的,才进行IAT解密,避免了有时候不需要解密也去解密,导致脱后程序不能执行 2.支持文件拖拽功能 3.脱未知壳时,如果IAT加密了,请选上解密加密IAT项,进行IAT还原 下面是它能脱的壳: upx 0.5x-3.00 aspack 1.x--2.x PEcompact 0.90--1.76 PEcompact 2.06--2.79 NsPack nPack FSG 1.0--1.3 v1.31 v1.33 v2.0 VGCrypt0.75 expressor 1.0--1.5 dxpack v0.86 v1.0 !Epack v1.0 v1.4 mew1.1 packMan 1.0 PEDiminisher 0.1 pex 0.99 petite v1.2 - v1.4 petite v2.2 petite v2.3 winkript 1.0 pklite32 1.1 pepack 0.99 - 1.0 pcshrinker 0.71 wwpack32 1.0 - 1.2 upack v0.10 - v0.32 upack v0.33 - v0.399 RLPack Basic Edition 1.11--1.18 exe32pack v1.42 kbys 0.22 0.28 morphine v1.3 morphine v1.6 morphine v2.7 yoda's protector v1.02 yoda's protector v1.03.2 yoda's crypt v1.2 yoda's crypt v1.3 EXE Stealth v2.72--v2.76 bjfnt v1.2 - v1.3 HidePE 1.0--1.1 jdpack v1.01 jdpack v2.0 jdpack v2.13 PEncrypt v3.1 PEncrypt v4.0 Stone's PE Crypt v1.13 telock v0.42 telock v0.51 telock v0.60 telock v0.70 telock v0.71 telock v0.80 telock v0.90 telock v0.92 telock v0.95 v0.96 v0.98 v0.99 ezip v1.0 hmimys-packer v1.0 jdprotect v0.9b lamecrypt UPolyX v0.51 StealthPE 1.01 StealthPE 2.2 depack 涛涛压缩器 polyene 0.01 DragonArmour EP Protector v0.3 闪电壳(expressor) BeRoEXEPacker PackItBitch 木马彩衣 mkfpack anti007 v2.5 v2.6 yzpack v1.1 v1.2 v2.0 spack_method1 v1.0 v1.1 v1.2 v1.21 spack_method2 v1.1 v1.2 v1.21 xj1001 xj1000 xj看雪测试版 xj1003 xpal4 仙剑-凄凉雪 仙剑-望海潮 mslrh0.31 v0.32 [G!X]'s Protect =================================================================
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值