jar包怎麼反編譯成項目
Ⅰ 安卓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盤的根目錄里
Ⅱ 如何將jar包反編譯後導入到eclipse中
導入步驟:
1、使用dex2jar工具,將apk反編譯成.jar後綴的文件(該文件是所有.class文件的壓縮包);
2、使用jd-gui.exe工具,打開上一步驟生成的.jar後綴的文件;使用File->Save all sources菜單,將.jar文件包中的所有文件以java源碼文件形式導出。
3、eclipse中創建android工程:File->new->Project->android->Android Project from Existing code;在Root Directory:中填寫AndroidManifest.xml所在的文件夾路徑。
4、將第2步驟中生成的所有文件和文件夾一起到第3步驟生成的工程中的src文件夾中(你也可以在工程目錄下隨便創建一個目錄,然後將java源碼文件扔進出,然後在工程目錄下面的.classpath文件中添加該文件夾的目錄路徑)。
Ⅲ 如何將jar包反編譯成項目
第一步 用反編譯工具將jar 反編譯
第二步 將反編譯後的項目,保存成zip包
第三步 解壓zip包,並將項目導入到項目中
用解壓軟體,這個很方便就不詳細說了
第四步 將文件導入到項目中(注意因為是文件,不是完整的項目,所以先創建一個空的項目,用這種方式去導入文件)
第五步選擇自己路徑下的文件點擊Resource Filters 即可
Ⅳ 什麼是Java代碼的編譯與反編譯
Java代碼的編譯與反編譯
2017-02-21Hollis數盟
一、什麼是編譯
1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。
2、用編譯程序產生目標程序的動作。編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
二、什麼是反編譯
計算機軟體反向工程(Reverseengineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
三、Java類的編譯與反編譯
我們在最初學習Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。
class文件打破了C或者C++等語言所遵循的傳統,使用這些傳統語言寫的程序通常首先被編譯,然後被連接成單獨的、專門支持特定硬體平台和操作系統的二進制文件。通常情況下,一個平台上的二進制可執行文件不能在其他平台上工作。而Javaclass文件是可以運行在任何支持Java虛擬機的硬體平台和操作系統上的二進制文件。
那麼反編譯呢,就是通過helloworld.class文件得到java文件(或者說是程序員能看懂的Java文件)
四、什麼時候會用到反編譯
1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那麼我們可以把它反編譯成我們可以看得懂的文件。
2、學習Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現細節,我們可以藉助反編譯。
五、反編譯工具
1、javap
2、Jad:官網(牆裂推薦)
客戶端:
可以在官網下載可執行文件,找到對應的操作系統的對應版本,然後進行安裝使用。
因為我使用的是linux操作系統,所以我下載的是Linux版本的工具,這個工具下載好之後會有一個執行文件,只要在執行文件所在目錄執行./jadhelloworld.class就會在當前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的Java代碼
Eclipse插件:
下載地址在官網下載插件的jar包,然後將jar包放到eclipse的plugins目錄下『在打開Eclipse,Eclipse->Window->Preferences->Java,此時你會發現會比原來多了一個JadClipse的選項,單擊,在Pathtodecompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時文件的目錄。當然在JadClipse下還有一些子選項,如Debug,Directives等,按照默認配置即可。基本配置完畢後,我們可以查看一下class文件的默認打開方式,Eclipse->Window->Preferences->General->Editors->FileAssociations我們可以看到class文件的打開方式有兩個,JadClipse和Eclipse自帶的ClassFileViewer,而JadClipse是默認的。全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼
Ⅳ java的打包後jar包裡面的class文件都能被反編譯成為源碼嗎
jd-gui這個工具可以進行反編譯的操作。 不過反編譯的質量隨著混淆的程度而定。
特別復雜的代碼(如加密演算法)反編譯一般都有問題。可以建議用 javap -c -p 來看位元組碼。然後參考jvm指令。
一般編譯的文件,都可以反編譯為源碼,但如果是經過加密、以及代碼異常復雜,是很難恢復全部的源碼。
Ⅵ jar包如何反編譯
使用jd-gui工具打開原始的Jar包,選擇File-->Save All Sources,會生成一個zip壓縮包。解壓這個壓縮包,就可以得到java源碼文件
Ⅶ AXMLPrinter2.jar這個反編譯XML的工具怎麼使用
1、用AXMLPrinter2.jar反編譯xxx.xml文件
2、解壓xxx.apk,選擇main.xml
對於解壓xxx.apk,選擇main.xml),復制到AXMLPrinter2.jar所在目錄,通過cmd進入AXMLPrinter2.jar所在目錄。
Ⅷ 被混淆的jar包如何反編譯
暫時想到的只有將jar文件解壓,用反編譯工具反編譯相關類,修改,編譯成類替換原文件,再打包成。
Ⅸ 如何快速反編譯JAVA的jar包或war包
有些時候我們面對一個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文件的信息。