最近研究到安卓項目的反編譯及代碼混淆。要想做到代碼混淆,首先要先做項目的反編譯,這樣才能知道別人是怎麼從apk看到源碼的。
需要三步:
1、下載apktool.jar和apktool,下載路徑:
https://ibotpeaches.github.io/Apktool/install/
找到mac版本說明。
Mac OS X:
Download Mac wrapper script (Right click, Save Link As apktool)
Download apktool-2 (find newest here)
Rename downloaded jar to apktool.jar
Move both files (apktool.jar & apktool) to /usr/local/bin (root needed)
Make sure both files are executable (chmod +x)
Try running apktool via cli
第一步下載wrapper script文件,右鍵,另存爲。下載到mac後,認準apktool可執行文件。
第二步下載apktool-2jar包。
第三步重命令apktool.jar。
第四步apktool和apktool.jar複製到/usr/local/bin/目錄下。
第五步分別chmod +x apktool chmod +x apktool.jar
第六步即可操作apk文件
apktool d -s app-release.apk
然後找到文件夾:app-release
其中:
第二步下載jar網絡不太好,翻牆後下載。下載路徑
https://bitbucket.org/iBotPeaches/apktool/downloads/
2、下載dex2jar-2.0.zip
https://sourceforge.net/projects/dex2jar/files/
解壓後,將classes.dex文件複製到該文件夾下。執行命令:
sh d2j-dex2jar.sh classes.dex
報錯:
d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied
解決方法:
sudo chmod +x d2j_invoke.sh
然後在執行上面一步。
然後可以看到多了一個classes-dex2jar.jar文件。
3、下載jd-gui
http://java-decompiler.github.io/
翻牆下載。
然後將第二步拿到的classes-dex2jar.jar拖到jd-gui中即可。就能看到class文件了。