android反编译

孤街浪徒 提交于 2020-04-03 05:48:07

常用反编译方法:
1.先将.apk改为.zip或者.rar用winrar加压得到classes.dex文件
2.用dex2jar工具将.dex转为.jar,然后用jd-gui就可以打开.jar查看源文件。

command: dex2jar.bat classes.dex

代码混淆:
1.混淆后能编译,只是类名,函数名看着没那么清晰了。
2.根目录下project.properties中设置配置文件路径。
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt(前者是基本文件,后者是个性化文件)
3.release方式生成apk.

解压apk包,res目录下的xml怎么查看呢。用文本工具打开是乱码。
使用AXMLPrint2.jar对xml进行反编译,报错(java.lang.ArrayIndexOutOfBoundsException)
报错原因:AndroidManifest.xml中android:minSdkVersion不能大于7
build时将android:minSdkVersion改为7以下就可以使用AXMLPrint2.jar进行反编译。

command: java -jar AXMLPrint2.jar main.xml >main.txt


baksmali.jar将classes.dex反编译为smali格式的文件(在classout文件夹下),在需要的地方做修改。
smali.jar将这些修改后的smali文件再编译为.dex文件。覆盖原来的.dex文件,然后打包为apk.(也可以使用dex2jar将其打为jar包)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!