dex2jar是一款很不錯的將android的.dex文件轉(zhuǎn)換成Java的.class文件的轉(zhuǎn)換工具,dex2jar 是一個能操作Android的dalvik(.dex)文件格式和Java的(.class)的工具集合,提供三種不同版本的dex2jar,如果在轉(zhuǎn)換過程中有問題的話,可以試用下其他的版本。
功能:
1.使用命令行時,當(dāng)轉(zhuǎn)某個類失敗時將繼續(xù),而不退出程序
2.解決讀取class annotation 的一個問題 Fixes issue 42
3.rename package pxb.android.dex2jar to com.googlecode.dex2jar
4.issue 33, issue 43在啟動參數(shù)中設(shè)置默認(rèn)jvm內(nèi)存大小
5. 修復(fù)讀取dex中java/lang/Object類時其父類是null導(dǎo)致的一個NPE問題
6. 提高異常信息的可讀性 Fixes issue 44
反編譯步驟:
1、把 class.dex 拷貝到 dex2jar.bat 所在目錄,直接拖動 class.dex 到 dex2jar.bat,生成 classes.dex.dex2jar.jar。
2、用 rar 解壓出 jar 文件中的 class 文件,然后 用jad 或 DJ Java Decompiler 反編譯工具將 .class 文件反編譯成 .java 文件
3、運行 JD-GUI工具(綠色軟件),打開上面的 jar 文件,在File下有個 Save JAR Source,它可以生成 src 源代碼。
Android用的Dalvik壓根不是標(biāo)準(zhǔn)的Java VM的Jar,而是DEX格式的,怎么辦?附件是dxe2jar和JD,兩個工具都是open source的,我已經(jīng)全部放在一個壓縮包了。
別著急,有辦法:
1. 假設(shè)你要反匯編的是app.apk,那么先改名成app.zip
2. 解壓
3. 在解壓出來的里面找到classes.dex,這個就是目標(biāo)的程序的二進(jìn)制文件
4. 用附件的dex2jar,在Windows命令行下運行 dex2jar classes.dex
5. 生成classes.dex.dex2jar.jar,這個就是轉(zhuǎn)換后的JAR文件了
6. 執(zhí)行jd-gui,找到剛才生成的JAR文件,打開之。
7. 偷偷樂吧,90%以上的Java源代碼躍然眼前.
dex文件反編譯dex2jar.bat
1.首先找到Android軟件安裝包中的class.dex
把a(bǔ)pk文件改名為.zip,然后解壓縮其中的class.dex文件,它就是java文件編譯再通過dx工具打包成的,所以現(xiàn)在我們就用上述提到的2個工具來逆方向?qū)С鰆ava源文件;
2.把class.dex拷貝到dex2jar.bat所在目錄。
運行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar
這時你將看到生成的jar包,然后通過上述的XJAD反編譯class文件。