[轉]andriod的apk檔案相關的編譯反編譯工具

weixin_34015860發表於2011-09-09

本文轉自:http://www.iteye.com/topic/1112243

 

1、smali-1.2.6.jar

用途:.smali檔案 轉成 classes.dex檔案

說明:.smali檔案,類似於.class檔案,可以用普通文字編輯器檢視和修改。

用法舉例:命令列:java -jar smali.jar classout/ -o classes.dex

下載:http://code.google.com/p/smali/downloads/list

 

2、baksmali-1.2.6.jar

用途:classes.dex檔案 轉成 .smali檔案

說明:classes.dex不便於檢視和理解,使用此工具轉成的.smali檔案易於閱讀和修改。

用法:命令列:java -jar baksmali.jar -o classout/ classes.dex

下載:http://code.google.com/p/smali/downloads/list

 

3、AXMLPrinter2.jar

用途:xml檔案 轉成 普通文字檔案(txt)

說明:apk中的xml檔案被搞成二進位制了,無法閱讀,使用此工具轉換後,可以檢視正常的xml檔案。

用法舉例:命令列:java -jar AXMLPrinter2.jar main.xml > main.txt

下載:http://code.google.com/p/android4me/downloads/list

 

 

學習了樓下dohkoos兄弟的總結,我也大概再補充一下:

1、dexdump

 

androidSDK提供的反編譯工具dexdump.exe,將dex檔案反編譯為較易理解的文字檔案。

位於路徑:\android\sdk\android-sdk-windows\platform-tools

用法:

dexdump: [-c] [-d] [-f] [-h] [-i] [-l layout] [-m] [-t tempfile] dexfile...

 

 -c : verify checksum and exit

 -d : disassemble code sections

 -f : display summary information from file header

 -h : display file header details

 -i : ignore checksum failures

 -l : output layout, either 'plain' or 'xml'

 -m : dump register maps (and nothing else)

 -t : temp file name (defaults to /sdcard/dex-temp-*)

 

例子:dexdump classes.dex >dexdump.txt

2、Dedexer

 

使用工具ddx1.11.jar來進行反編譯dex,一般可讀性比dexdump工具能強點,但還是不好理解。

用法:

Usage: java -jar ddx.jar -o -D -r -d <destination directory> <source>

       <destination directory> is where the generated files will be placed.

       <source> is the name of the source DEX file.

       -D - if present, more detailed error report is printed in case of failure

.

       -o - if present, detailed log file will be created about the input DEX fi

le (dex.log).

       -r - if present, register trace will be emitted after each instruction

       -e <deps> - if present, the <deps> directory is supposed to contain depen

dencies necessary for ODEX disassembly. Read the manual for details.

 

例子:

java -jar ddx1.11.jar -o -D -r -d src classes.dex //src目錄下生成ddx檔案  

3、AXMLPrinter2 

 

檢視apk中的XML資原始檔,因為xml都被壓縮成bytecode了,所以使用此工具幫助檢視。

用法:

java -jar AXMLPrinter2.jar AndroidManifest.xml > out.xml

4、apktool

dohkoos兄弟對這個講了不少了。能反編譯,也能編譯,能看class,也能看xml資源,是個不錯的工具。這裡推薦一個此工具的下載說明地址。

http://bbs.gfan.com/thread-971865-1-1.html

 

5dex2jar

 

apk或者dex轉化為可以用gui檢視的class檔案。此種貌似很強大。

下載地址:http://code.google.com/p/dex2jar/downloads/list

 

6、smali和baksmali

類似於apktool生成的smali檔案。此兩個工具,smali編譯,baksmali反編譯。

  

相關文章