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

來源:互聯網
上載者:User

標籤:android   class   code   java   c   http   

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=

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.