反编译 APK

版权声明:本文为博主原创文章,欢迎转载,转载时请以超链接形式标明文章原始出处。 https://blog.csdn.net/lilongsy/article/details/83112483

apktool 获取资源文件

资源文件获取,可以提取出图片文件和布局文件进行使用查看。
下载地址: https://bitbucket.org/iBotPeaches/apktool/downloads/
APK文件无非就是一个zip压缩包,但是直接用unzip命令解压,会增大编译源,从而无法进行下一步的查看或反编译。apktool就是扮演这么一个角色,可以加压缩,并且可以正常解码文件。
apktool常见的一些命令参数:
ddecode用来解码后面的apk文件。
-ooutput输出文件。
bbuild创建apk包。
ifinstall-framework安装框架到apk。

# 解码或解压bar.apk,并输出到baz文件夹
apktool d bar.apk -o baz
# 压缩bar文件加并创建new_bar.apk文件
apktool b bar -o new_bar.apk
# 安装框架到foo/bar/1-baz.apk,p是path路径,t是tag标记。
apktool if framework-res.apk -t baz -p foo/bar

dex2jar获取源码文件

将apk反编译成java源码(classes.dex转化成jar文件)。
下载地址:https://sourceforge.net/projects/dex2jar/files/
使用方法:
首先把apk文件扩展名改为zip,然后解压缩,就得到了classes.dexresources.arsc
然后运行一下命令:

sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk

就得到了反编译的jar包。

jd-gui 查看源码(不推荐用)

查看APK中classes.dex转化成出的jar文件,即源码文件。
下载地址:http://jd.benow.ca/
需要java 1.7.0
运行jd-gui.exe
D:\jdk7\bin\java.exe -jar jd-gui-1.4.0.jar(注意jdk7的目录)。

Luyten反编译查看源码

jd-gui反编译不是很准,建议用Luyten,最关键的是兼容Java新版本。
下载地址:https://github.com/deathmarine/Luyten/releases
执行java -jar luyten-0.5.3.jar就能打开可视化界面了。

参考

https://ibotpeaches.github.io/Apktool/documentation/
https://github.com/pxb1988/dex2jar
https://github.com/deathmarine/Luyten

猜你喜欢

转载自blog.csdn.net/lilongsy/article/details/83112483