Android脱壳常用框架及使用方法

转自: https://www.yisu.com/zixun/520795.html


这篇文章主要讲解了“Frida脱壳工具怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Frida脱壳工具怎么使用”吧!

Frida脱壳工具

概述

现在很多 app 都会对 Frida 进行检测,所以要根据app的情况来具体使用

壳的分类

壳的种类非常多,可以简单的分为以下三类:

一代整体型:采用Dex整体加密,动态加载运行的机制(免费类的壳);

二代函数抽取型:将方法单独抽取出来,加密保存,解密执行(某加密);

三代VMP、Dex2C:独立虚拟机解释执行。

Frida-Unpack

firda-unpack 原理是利用frida hook libart.so中的OpenMemory方法,拿到内存中dex的地址,计算出dex文件的大小,从内存中将dex导出,我们可以查看项目中的 OpenMemory.js 文件中的代码更清晰直观地了解。

将 dex 文件并 dump 下来,保存在 data/data/packageName 目录下

FRIDA-DEXDump

葫芦娃所写,脱壳后的dex文件保存在PC端main.py同一目录下,以包名为文件名

GitHub地址:https://github.com/hluwa/FRIDA-DEXDump

frida_dump

文件头搜索dex,来脱壳

会搜索 dex 文件并 dump 下来,保存在 data/data/packageName/files 目录下

Frida_Fart[推荐]

寒冰写的, Frida 版的 Fart, 目前只能在 andorid8 上使用该frida版fart是使用hook的方式实现的函数粒度的脱壳,仅仅是对类中的所有函数进行了加载,但依然可以解决绝大多数的抽取保护

GitHub地址:https://github.com/hanbinglengyue/FART 下载 frida_fart.zip 即可

解压 frida_fart.zip

将目录中的 fart.so 与 fart64.so 推送到 /data/app目录下 并使用 chmod 777

需要以spawn方式启动app,等待app进入Activity界面后,执行fart()函数即可。如app包名为com.example.test,则

frida-U-fcom.example.test-lfrida_fart_hook.js--no-pause

Shell
_ 复制_

等待app进入主界面,执行fart()

高级用法:如果发现某个类中的函数的CodeItem没有dump下来,可以调用dump(classname),传入要处理的类名,完成对该类下的所有函数体的dump,dump下来的函数体会追加到bin文件当中。

于被动调用的脱壳修复,由于代码覆盖率低,不可能触发app中的所有函数的调用,因此,修复的范围有限。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容