有些時候我們面對一個class文件jar包或者war包,很想知道裡面有什麼參數,有什麼方法,但是又沒有文檔,又沒有源代碼,那怎麼辦呢。
沒關系,我們可以反編譯這些class文件或jar包或war包。
java的class文件存儲的是位元組碼,這些基本知識在此就不必啰嗦了。反正就是其存儲的信息足夠可以反編譯出來。
我們下載TTools中dist文件夾下的TdeCompile.jar可執行jar包,然後就可以開始反編譯工作了。使用方法很簡單,在命令行輸入命令即可,如下
[plain] view plain
java -jar TdeCompile.jar xxx.class
注意如果你不在TdeCompile的同目錄下,需要寫上TdeCompile.jar的路徑,其次跟一個參數xxx.class,xxx代表你所要反編譯的文件的文件名。輸出即是xxx.class.txt,它是反編譯過後的文件,txt文本格式,所在目錄通xxx.class。請確保你在xxx.class目錄下有寫許可權。
我們也可以直接操作一個jar包或war包。如:
[plain] view plain
java -jar TdeCompile.jar xxx.jar
程序可以自動識別是class文件還是jar或war包,如果是jar包或war包,則首先自動解壓縮,解壓縮的目錄為xxx.jar的同一個目錄,然後逐個反編譯class文件,在每個class文件的旁邊輸出一個xxx.class.txt文件。請確保你在jar包所在目錄有寫許可權。
TdeCompile的原理是利用了ASM去讀取每一個class文件的信息。
B. 被混淆的jar包如何反編譯
暫時想到的只有將jar文件解壓,用反編譯工具反編譯相關類,修改,編譯成類替換原文件,再打包成。
C. 如何將jar包反編譯成項目
第一步 用反編譯工具將jar 反編譯
第二步 將反編譯後的項目,保存成zip包
第三步 解壓zip包,並將項目導入到項目中
用解壓軟體,這個很方便就不詳細說了
第四步 將文件導入到項目中(注意因為是文件,不是完整的項目,所以先創建一個空的項目,用這種方式去導入文件)
第五步選擇自己路徑下的文件點擊Resource Filters 即可
D. 安卓4.0如何反編譯resources.arsc
resources是APK中的資源文件,例如圖片布局等等,android 反編譯的方法,需要用到幾個工具,網路一下都能找到下載地址
dex2jar JD-GUI apktool
反編譯步驟:
1.反編譯Apk得到Java源代碼
首先要下載兩個工具:dex2jar和JD-GUI
前者是將apk中的classes.dex轉化成Jar文件,而JD-GUI是一個反編譯工具,可以直接查看Jar包的源代碼。
具體步驟:
1.首先將apk文件,將後綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;
2.解壓下載的dex2jar,將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄
運行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar
2.反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件
還是下載工具,這次用到的是apktool
具體步驟:
將下載的兩個包解壓到同一個文件夾下,應該會有三個文件:aapt.exe,apktool.bat,apktool.jar
1.解壓縮下載的兩個文件包,apktool-install-windows-r04-brut1.tar解壓縮後得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解壓後的一個.jar 文件到解壓後的\apktool-install-windows-r04-brut1文件夾里)
2.特別注意:你要反編譯的文件一定要放在C盤的根目錄里
E. 怎樣jar包直接反編譯成java文件
使用現有的反編譯工具或者自己寫一個,jar包實際上是class文件打包的,class文件是二進制文件,使用流將class文件讀入,然後轉為字元再寫入到文件中就完成反編譯了。不過經過混淆過的jar包好像不能反編譯。
F. jar包如何反編譯
使用jd-gui工具打開原始的Jar包,選擇File-->Save All Sources,會生成一個zip壓縮包。解壓這個壓縮包,就可以得到java源碼文件
G. 利用idea反編譯jar成java
要利用IntelliJ IDEA反編譯.jar文件為Java源代碼,首先,找到idea中已安裝的java-decompiler.jar文件路徑,通常位於:
D:\app\JetBrains\IntelliJ IDEA 2020.2.2\plugins\java-decompiler\lib\java-decompiler.jar
然後,將待反編譯的.jar文件放置在指定目錄,例如 D:\tmp\class_to_java,並在該目錄下創建一個新子目錄,例如命名為"XXX"。
接下來,切換到新目錄 D:\tmp\class_to_java,執行以下命令以反編譯jar文件:
java -cp "D:\app\JetBrains\IntelliJ IDEA 2020.2.2\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true XXX.jar XXX
運行該命令後,新的Java源代碼文件將以jar包形式在同目錄中生成。