android反编译

常用反编译方法:
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包)

你可能感兴趣的:(android)