免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:图灵Python学院
工具下载:
链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3
提取码:6tw3
复制这段内容后打开百度网盘手机App,操作更方便哦
上一个内容:33.安卓逆向-壳-查壳
上一个内容里写了如何查询app文件是否加壳,本次来写怎样去砸壳(或者说是脱壳)
有一个工具叫做frida-Dexdump,常规的壳它没有问题,它通过frida的搜索内容,通过匹配dex文件的特征,例如dex文件的文件头中的magic---dex.035这个特征
脱壳原理
一个app被加固了,然后如果想让app正常运行,它肯定要把app原本的代码放到内存里,也就是说app启动的时候会先运行脱壳的代码,然后把dex源码文件加载到内存里,也就是说内存里会有app的源码,如果原本的代码加完壳之后找不到了那么app也没法正常运行,然后app加固只是把dex源码文件放到别的地方了,并不是没有了,所以frida-Dexdump就是利用这种方式来对app进行脱壳
frida-Dexdump官网地址:https://github.com/hluwa/FRIDA-DEXDump
下载有两种方式,第一种,把下图红框的文件全部下载下来
![]()
第二种使用pip命令下载
![]()
第一种方式下载完,如下图红框requirements.txt文件里的是它需要的东西,比如没有frida-tools就要手动安装一下,没有安装click也要手动安装一下,总之要确保requirements.txt文件里的东西都已经安装了,否侧会没法使用
![]()
pip命令进行安装,如下图
![]()
然后把手机上的Frida运行起来,然后来到下载frida-dexdump的目录里,如下图
然后在此目录打开cmd
然后输入 python .\frida_dexdump\ -FU 表示把当前手机里显示的app进行破解,如下图
它会把源码文件放到如下图红框位置,也就是在frida-dexdump安装位置根据app的包名创建一个文件夹,然后把源码文件放进去
如下图源码文件,然后这些文件可以直接放到 jadx-gui 里进行查看,但要注意它非常占用内存,如果电脑内存不够大,可能会因为内存满了变卡或死机,所以肯定有一种不用担心内存满的方式
通过搜索先找到app的入口方法,有一个GDA4的工具
GDA4下载地址:http://www.gda.wiki:9090/
打开GDA4之后,把apk文件拖到GDA4里,然后看BaseInfo,就能找到入口了如下图2位置的红框就是入口
找到入口之后打开Windows的shell,如下图红框的东西
然后输入 findstr /s /i /m "GDA4里找到的入口" *,如下图红框它就可以找到入口相关的dex源码文件,把这集个文件分别拖到jadx-gui里,findstr 指令只能在 Windows PowerShell里使用(cmd可能没法用)
如下图通过这种一点一点的找源码文件的方式看源码