之前針對 C/C++ 寫了一篇
http://wadefs.blogspot.tw/2012/01/cc-disassembly.html
底下是我隨手亂寫的一點東西,當作關鍵字來看就好,懶得整理
https://github.com/pxb1988/dex2jar
http://sourceforge.net/projects/dex2jar/
a) Convert the code to a modifiable format.
d2j-dex2jar.sh -f -o test_apk-debug_dex2jar.jar test_apk-debug.apk
d2j-asm-verify.sh test_apk-debug_dex2jar.jar
d2j-jar2jasmin.sh -f -o test_apk_jasmin test_apk-debug_dex2jar.jar
b) edit test_apk_jasmin/a/b/Main.j
c) repack apk
d2j-jasmin2jar.sh -f -o test_apk_jasmin.jar test_apk_jasmin/
d2j-asm-verify.sh test_apk_jasmin.jar
d2j-jar2dex.sh -f -o classes.dex test_apk_jasmin.jar
cp test_apk-debug.apk test_apk-debug-toast.apk
zip -r test_apk-debug-toast.apk classes.dex
d2j-apk-sign.sh -f -o test_apk-debug-toast-signed.apk test_apk-debug-toast.apk
1. 反編譯Apk得到Java源代碼
dex2jar.bat classes.dex <-- apk="" classes.dex.dex2jar.jar="" p="">2. 上面產生的 jar 檔,透過 jd-gui 來讀原碼
jd-gui classes.dex.dex2jar.jar
3. 若要修改資源(如要漢化)
apktool d -f [apk文件 ] [輸出文件夾]
4. 將上面輸出文件夾編譯成 apk
apktool b [輸出文件夾]
baksmali -a 15 -x mediatek-framework.odex -d framework -o mediatek-framework
解開 AndroidManifest.xml:
apktool d HelloWorld.apk ./HelloWorld