目前发现比较好用的工具:
Apktool:可以将res资源文件(drawable、mipmap、layout、value、AndroidManifest
等等)几乎原始的形式解码出来, 极其nb
dex2jar:classes.dex
文件转换成xxxx.jar
文件jar里面的是.class
文件
JD-GUI:读取.class
文件的Java源代码
Apktool使用
a.下载后解压到单独文件夹, 如:我的目录D:\ApkTool

b.打开cmd切换到该路径下

c.将要反向工程的目标apk复制到该路径下, 如:ai.apk

d.在cmd输入命令apktool d ai.apk
, ai.apk
应为反向工程apk的名字

e.反向的资源文件保存在该文件路径下

反向提取资源文件大功告成, 想反向Java源码请滚动你的滑轮继续向下👇
👇
👇
👇
👇
dex2jar使用
1.将下载好的dex2jar解压到单独文件夹, 如下图

2.反向工程的目标xxx.apk
重命名为xxx.rar
后解压

3.xxx.dex
文件为反编译的文件, 将其复制到dex2jar目录下
4.cmd切换到dex2jar
路径

5.输入命令d2j-dex2jar.bat classes.dex
, classes.dex
应为反向工程目标文件的名字

6.在dex2jar
目录下生成xxx.jar
文件, 已经很接近成功了

读取源码就在下面, 你确定要半途而弃吗?
👇
👇
👇
👇
JD-GUI使用
a).这次不用问阿贵了吧?!解压打开JD-GUI
, 如果JDK
过旧需要拆卸旧JDK
安装新JDK
后才能打开JD-GUI
, 放200 >> 1
个心, 安装的时候全部有提示, 根据提示操作就行, 完全sg式操作
到这一步你确定不往下看吗?
👇
👇
👇
👇
我应该要证明你的努力不是白费的
b).查看源码有N种姿势, 自己慢慢尝试, 打开JD-GUI
File -> Open File -> 选中jar文件 -> 打开(or 直接拖动jar文件到JD-GUI
)

c).能从中获取多少信息各安天命

明显看到阅读源码很吃力, give me some time 我会出一篇如何高效阅读反向工程源码文章, 敬请期待吧!
晚安!
网友评论