您的当前位置:首页正文

Android反编译

来源:花图问答

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

jadx

2.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内部每个包的方法数,用了哪些开源库,同样拿知乎开刀做例子

Classyshark

smali代码调试插件,你以为没有拿到安卓Java源码就不能调试了吗?图样图森破了吧

smalidea

IDA Pro,逆向大利器,不管你是smali还是so文件,照样动态调试你

IDA Pro

3.4 Android Killer

3.5 SmaliViewer

3.6Enjarify

Enjarify 是一个用 Python 写的, Google 官方开源的可以将 Dalvik 字节码转换为 Java 字节码的工具