Java反编译逆向
APK解包
- apktool解包
// 可以解压出AndroidManifest.xml、资源、smali
./tools/apktool d **.apk - 把apk拖到Android Studio打开,可以解压出与1相同的效果
- 把apk强制修改后缀名为.zip,解压,可以提取出class.dex
- 使用dex-tools提取apk中的所有class
./tools/dex-tools-v2.4/d2j-dex2jar.sh *.apk jar反编译
- 【优先推荐】crf反编译
java -jar ./tools/cfr-0.152.jar *.jar --outputdir ./source- 【推荐】procyon,搭配crf使用
java -jar tools/procyon-decompiler-0.6.0.jar -jar *.jar -o procyon/- IDEA自带反编译工具
1. 新建Android项目
2. 新建libs目录,把jar放进去
3. 在Android Studio里,选中.jar,右键Add as Library
4. 展开jar,可选择文件阅读源码
劣势:反编译效果一般,挺多处提示“*// $FF: Couldn't be decompiled 表示无法反编译。无法重命名注释等。*
查看apk中的资源列表和ID
aapt d resources XXX.apk查看代码
新建一个Android Studio工程,然后把代码copy到工程中,阅读代码,并使用Android Studio的refactor,修改类名、函数名、变量名等。