frida脱二代数字壳全流程

闲谈

drizzleDumper只能整体脱一代数字壳,原理是DEX整体脱壳,一代壳市面上较少见。

二代数字壳可能是分段式Dex,据说frida和Xposed能脱,Xposed的环境搭建条件苛刻,似乎要真机、root、Android低版本,不知道是不是真的,反正我是怕了,先Frida走一波。(frida是一款基于python + javascript 的hook框架,可运行在android、ios、linux、windows等各平台,主要使用动态二进制插桩技术。)

 

前期准备工作:

1.下载脱壳脚本github项目:

https://github.com/smartdone/Frida-Scripts/tree/master/unpack

2.本地搭建Frida环境:

pip install frida

pip install frida-tools

3.下载frida-server(注意确认模拟器/手机的架构是ARM还是x86,是32位还是64位):

https://github.com/frida/frida/releases

把frida-server文件用push命令从电脑传输到手机或者模拟器任意目录下,并赋予777权限(chmod 777)。

4.打开端口转发:

adb forward tcp:27042 tcp:27042

5.打开两个cmd窗口,一个先把服务器端运行起来

./frida-server

 

脱壳时执行的工作:

1.ADB连接模拟器

adb connect 127.0.0.1:{模拟器端口号}

2.测试frida运行是否正常(frida-ps: 用于列出进程的一个命令行工具)

frida-ps -U

3.模拟器打开待脱壳app(如果是手机需要root)

4.执行脱壳脚本

frida -R -f {app包名} -l unpack.js (用app包名替换{app包名})

5.用pull命令导出/data/data/{app包名}/files/{数字}.dex(从内存中dump的dex会放到files目录下面的十六进制数字命名的dex文件中,emm.dex不是哈)

 

其他小TIP:

1.查看模拟器和手机的架构的方法:

https://blog.csdn.net/jiguangcanhen/article/details/42120245

2.获取App包名的命令:

adb shell dumpsys activity |find "mFocusedActivity"

3.想到再补充
 

参考文章:

https://www.jianshu.com/p/646032f34d57——window上搭建frida环境

https://blog.csdn.net/whklhhhh/article/details/81519219——【奈沙夜影】180802 安卓-脱壳相关

https://baijiahao.baidu.com/s?id=1608313750146067893&wfr=spider&for=pc——详解Hook框架frida,让你在逆向工作中效率成倍提升!

你可能感兴趣的:(逆向,脱壳,frida,app)