在看完如何反编译后,本以为就算是成功了,结果反编译软件后发现,代码文件数明显不对,在查阅后发现现在市场上大部分软件都是有过加壳操作的,以此来防止被反编译的操作。
在网上多番搜索后发现了通过脱壳工具来进行脱壳的简便方法
教程上大多都是使用root后的安卓机或者在手机上装VirtualXposed才能使用,前者很方便,但是我的海信a2pro官方不提供root权限,再加上用户量少,root工具也不愿意添加支持这个机型(垃圾海信)。
所以这里我通过电脑上的安卓模拟器来实现脱壳过程。
一、准备阶段
- 安卓模拟器(我这里使用的是网易的mumu模拟器)
- 脱壳工具 dumpdex(我看的教程里用的是FDex2但我使用了没反应)
- Xposed框架
百度网盘:https://pan.baidu.com/s/1T94PX4EBYyuJKOqfNqyc6g 提取码: mquv
首先在模拟器的设置中心里打开root权限
然后打开安卓本身的设置
打开应用兼容性
将兼容模式关闭(这步很重要,不然xposed安装会失败在,网上查了很久才找到这个问题)
完成这两步后重启一下模拟器
二、脱壳
将xposed Installer安装然后打开
点击安装
会自动下载然后安装,下载速度可能比较慢(有条件的可以用小飞机)
提示安装成功后重启模拟器
安装dumpdex,和你要脱壳的软件。
dumpdex安装完成是看不到软件图标的,打开Xposed之前安装成功会显示,框架已激活。
点击左上角
选择模块就可以看到DumpDex
点击右边的框框打上勾,然后重启模拟器
重启后打开你要脱壳的软件,等软件成功启动后就可以把软件关掉了。这样脱壳就算完成了。
打开模拟器自带的应用中心
搜索下载re文件管理器
在/data/data下找到你脱壳的软件文件目录,打开目录可以看到有一个名为dump的文件夹
打开dump文件夹可以看到里面有dex文件。
三、提取文件到电脑上。
会需要反编译apk的大多都是安卓开发了,android sdk肯定是有的,没有的就直接去百度上搜索下载一下adb。
有android sdk的,在sdk的目录下找到platform-tools文件夹,里面就有adb.exe
进入platform-tools文件夹,在上面导航栏输入cmd打开cmd窗口
输入adb connect 127.0.0.1:7555连接mumu模拟器,其他的模拟器连接端口我不清楚,可以去网上查找。成功会显示一下内容
然后输入adb pull /data/data/{你所脱壳的软件包目录名}/dump {你在电脑上准备存放的位置}(也可以不输入存放位置,那样就会在当前目录下存放了)
通过dex2jar进行反编译就可以得到了
参考:https://www.jianshu.com/p/138c9de2c987
http://ddrv.cn/a/225425
https://blog.csdn.net/qq_39773343/article/details/81037102