Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 深入了解APK反編譯(分解,編譯和打包)

深入了解APK反編譯(分解,編譯和打包)

編輯:關於Android編程

1、下載dex2jar最新版本0.0.7,下載地址http://code.google.com/p/dex2jar/downloads/list
2、下載class反編譯工具,我用的是jad,大家可以根據自己情況選擇。
3、在cmd下進入dex2jar.bat所在路徑,然後輸入“dex2jar.bat XXX”,XXX指的是你要反編譯的apk中的classes.dex文件所在路徑及名稱,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路徑下, classes.dex在D:\Android下
所以: 你進入dex2jar.bat路徑下後,輸入dex2jar.bat D:\Android\classes.dex
4、這樣會生成一個jar文件,然後用jad工具將.class文件反編譯成.java文件。
5、反編譯jar文件,見下載的附件

要反編譯一個apk譯文件,需要做以下幾步:
1.找到apk安裝文件
2.找到安裝軟件的*.dex譯文件
3.dump dex文件
4.分析dex文件獲取想要的代碼

1.找到apk安裝文件
這個比較容易,把手機或者模似器安裝好後,可以在eclipse的File Explorer下找到安裝程序的apk譯文件,也可以通過adb命令找到:

$ adb shell
# cd /system/app
cd /system/app
# ls

2.找到安裝軟件的*.dex譯文件
運行安裝軟件後,會在android文件系統下生成一個*.dex文件,一般在目錄/data/dalvik-cache下,也可以通過adb命令找到:

$ adb shell
# cd /data/dalvik-cache
cd /data/dalvik-cache
# ls

3.編譯軟件對應的dex文件,通過以下指令:

adb shell dexdump -d -f -h /data/dalvik-cache/data@[email protected]@classes.dex > twitpic.text

指令參數解釋:
-d : disassemble code sections
-f : display summary information from file header
-h : display file header details
-C : decode (demangle) low-level symbol names
-S : compute sizes only

4.獲取需要的代碼:
打開剛才得到的編譯出來的text文件,會看到形如以下的代碼:

Class #0 header:
class_idx : 32
access_flags : 196625 (0×30011)
superclass_idx : 61
interfaces_off : 0 (0×000000)

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved