Android反編譯工具介紹與簡單實用方法


Android反編譯的目的無非就是為了看到APK的xml、資源和代碼:

  得到代碼的方式:直接解壓APK文件 --> 得到classes.dex文件 --> 使用 dex2jar classes.dex classes.jar生成jar文件 --> [可選的解壓jar文件] -->使用XJad或者JDCompiler查看源代碼

     得到XML的方式:

    方式1:直接解壓APK文件 --> 通過axmlprinter工具查看XML文件(這種方式查看的XML文件的id都是數字--即R文件中id對應的值)

           方式2:使用APKTool工具解壓APK文件可以直接查看XML文件

 

Android反編譯常常使用如下的一些工具:

1、反編譯命令:  

  apktool d D:\\Developer\androidDecode\Test0201.apk D:\\Developer\androidDecode\test0201  

    D:\\Developer\androidDecode\Test0201.apk:要反編譯的APK文件

    D:\\Developer\androidDecode\test0201:反編譯文件的保存目錄,必須為空目錄

2、從反編譯的文件編譯成APK  apktool b D:\\Developer\androidDecode\test0201 D:\\Developer\androidDecode\test020101.apk

   D:\\Developer\androidDecode\test0201:保存編譯后文件的目錄  

  D:\\Developer\androidDecode\test020101.apk:生成的新的APK文件的保存的絕對路徑

3、簽名APK文件:  

  singedAPK.bat文件  

    java -jar "%~dp0signapk.jar" "%~dp0testkey.x509.pem" "%~dp0testkey.pk8" %1 signed.apk  

  執行singedAPK.bat命令  

    singedAPK D:\\Developer\androidDecode\test020101.apk  生成一個singed.apk文件和test020101.apk在同一個目錄

4、使用baksmali.jar把一個dex文件轉換為一個smali文件  

    java -jar D:\\Developer\ApkTool\baksmali.jar -o D:\\Developer\androidDecode\baksmaliout D:\\Developer\androidDecode\Hello.dex  

      D:\\Developer\ApkTool\baksmali.jar:baksmali.jar文件所存在的全路徑  

      D:\\Developer\androidDecode\baksmaliout:生成的smali文件的保存目錄  

      D:\\Developer\androidDecode\Hello.dex:要轉成smali文件的路徑

5、使用ddx.jar把一個dex文件轉換為ddx文件  

    java -jar D:\\Developer\ApkTool\ddx.jar -d D:\\Developer\androidDecode\ddxout D:\\Developer\androidDecode\Hello.dex  

      D:\\Developer\ApkTool\ddx.jar:ddx.jar文件的絕對路徑  

      D:\\Developer\androidDecode\ddxout:要保存ddx文件的路徑  

      D:\\Developer\androidDecode\Hello.dex:要轉換的dex路徑

6、Android自帶dexdump工具:dex文件轉為smali文件  dexdump -d xxxx.dex > xxxx.smali

7、dex2jar.jar:dex2jar XXX.dex YYY.jar

 

說明:

  apktool項目地址:https://code.google.com/p/android-apktool/

  baksmali項目地址:https://code.google.com/p/smali/

      dex2jar項目地址:https://code.google.com/p/dex2jar/downloads/list

      java Decompiler(JD)項目地址:http://jd.benow.ca/

  XJAD百度網盤下載地址:http://pan.baidu.com/share/link?shareid=406366626&uk=3558809438&fid=881236853

  axmlprinter項目地址:https://code.google.com/p/android4me/downloads/detail?name=AXMLPrinter2.jar&can=2&q=


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM