1. 安卓逆向助手
Android逆向助手是一功能强大的逆向辅助软件。该软件可以帮助用户来进行apk反编译打包签名;dex/jar互转替换提取修复;so反编译;xml、txt加密;字符串编码等等,操作简单,只需要直接将文件拖放到源和目标文件。
安卓逆向助手将下载好的rar 包解压缩以后目录结构如下(内置的广告被我删除后的)
Tips:lib 目录存放都是用java 写的核心反编译逻辑,必须跟exe 文件放在同一个目录下。
打开Android 逆向助手.exe,如下图所示:
安卓逆向助手选择源文件,并且选择(也是默认的选择)反编译apk,我们找到mtxx.apk 的路径,然后点击操作。
在mtxx.apk 目录下生成了一个mtxx 文件夹,打开该文件,目录结构如下图所示:
在上面操作后打开lib 目录可以找到美图秀秀的动态库文件,但是我们还需要找到其java 代码。显然
美图秀秀用smali 算法反编译了。那么我们接着下一步。
在Android 逆向助手.exe 中打开源文件,选择提取dex 点击执行。
安卓逆向助手这时候在目标文件夹下生成了dex 文件
安卓逆向助手最后在Android 逆向助手.exe 中选择dex 转jar 选项。在源文件中选择上一步生成的classes.dex 文件,然后点击执行(这个过程大概需要几秒的等待时间)。这时候该软件会自动将我们生成的jar 文件用jd-gui工具打开。打开效果如下所示:
安卓逆向助手2. jadx
jadx2.1 准备
clone 仓库,编译
mkdir jadx
git clone
cd jadx
./gradlew dist #这个需要稍微等待一下
开始反编译,等完毕后,可以开始了,我就介绍个最简单最常用的用法
把apk改成zip,解压zip获取class.dex文件,将class.dex文件放到jadx目录下
cd build/jadx/
bin/jadx -d out class.dex # 反编译后放入out文件夹下(如果out不存在它会自动创建)
#or
bin/jadx-gui class.dex # 会反编译,并且使用gui打开
OK,就这样,后续还可以配置环境变量,更加方便
3. 更多反编译工具
轻松查看apk内部每个包的方法数,用了哪些开源库,同样拿知乎开刀做例子
Classysharksmali代码调试插件,你以为没有拿到安卓Java源码就不能调试了吗?图样图森破了吧
smalideaIDA Pro,逆向大利器,不管你是smali还是so文件,照样动态调试你
IDA Pro3.4 Android Killer
3.5 SmaliViewer
3.6Enjarify
Enjarify 是一个用 Python 写的, Google 官方开源的可以将 Dalvik 字节码转换为 Java 字节码的工具