java反編譯原理
❶ java中的反射機制的原理和用途是什麼
反射技術:其實就是動態載入一個指定的類,並獲取該類中的所有的內容。並將位元組碼文件中的內容都封裝成對象,這樣便於操作這些成員。簡單說:反射技術可以對一個類進行解剖。
反射的好處:大大地增強了程序的擴展性。
反射的基本步驟:
1、獲得Class對象,就是獲取到指定的名稱的位元組碼文件對象。
2、實例化對象,獲得類的屬性、方法或構造函數。
3、訪問屬性、調用方法、調用構造函數創建對象。
獲取這個Class對象,有三種方式:
1:通過每個對象都具備的方法getClass來獲取。弊端:必須要創建該類對象,才可以調用getClass方法。
2:每一個數據類型(基本數據類型和引用數據類型)都有一個靜態的屬性class。弊端:必須要先明確該類。
前兩種方式不利於程序的擴展,因為都需要在程序使用具體的類來完成。
3:使用的Class類中的方法,靜態的forName方法。
❷ Java反編譯工具哪個好
jd-gui好 算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,Java反編譯工具哪個好
❸ 怎麼用java自帶反編譯工具查看java位元組碼文件
首先,寫一個最簡單的程序,我們從最簡單入手,相信大家1秒就可以看懂了吧
然後,經過編譯生成HelloWorld.class文件,對,我們就去看HelloWorld.class裡面的java位元組碼,到底是什麼。
輸入下圖所示的命令,javap -verbose HellloWorld.class 回車
詳細代碼,如下,沒學過編譯原理的,建議去學下,去學下編譯原理,經常看看,就能看懂了,我和大家都是一樣,我也是一名,計算機愛好者,沒事,喜歡瞎鼓弄。今天就到這了。怎麼用java自帶反編譯工具查看java位元組碼文件!
❹ 如何快速反編譯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文件的信息。
❺ 最好的java反編譯工具是哪個
jd-gui好
計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。JD分為JD-GUI、JD-Eclipse兩種運行方式,JD-GUI是以單獨的程序的方式運行,JD-Eclipse則是以一個Eclipse插件的方式運行。
❻ 什麼叫java反編譯軟體!
計算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
JD分為JD-GUI、JD-Eclipse兩種運行方式,JD-GUI是以單獨的程序的方式運行,JD-Eclipse則是以一個Eclipse插件的方式運行。
❼ 誰有辦法把class文件反編譯為java嗎,不能出任何錯誤。我用jd總是有錯誤,而且好像有層級限制
jd只是適合少量class文件,如果太多的話,類的引用就太繁瑣了,偶爾會出錯。我也是用XJAD反編譯的,它可以反編譯一個jar包。反編譯有啥原理呢?虛擬機將*.java文件編譯成位元組碼(*.class文件)然後,在編譯成本地機器碼,執行;我們一般用來傳播的也就是*.class文件,這是一種有標准格式的位元組碼,開發工具按這個格式在將轉換為*.java程序,就這樣咯。而且,如果你要學了*.class文件的結構,自己都能計算出對應的*.java文件,只不過很復雜,很繁瑣。
❽ java、c語言,編譯原理,高手來下
程序編譯??
你的最終目的是開發編譯器還是做文法解釋器?還是你就是像學編程?
如果你像做編譯方面的研究,初中還太早了。有很多基礎知識你不懂沒有辦法學的。要學編譯原理只要要先學離散數學。
如果你僅僅是要學編程(基本的軟體開發),我建議你學標准C開始,唐浩強的那本C語言教程非常經典,而且也好懂。
如果你喲問題的話,給我郵件:danndy◎21cn.com,我盡力回答。不好意思,公司將QQ封了,我不能上QQ。
❾ 有沒有介紹java編譯原理的書籍推薦。現在在學java只是模仿代碼,但不知道為什麼程序要這樣寫,我
學Java必看書籍:Java編程規范,Effective Java第二版,Java並發編程實踐,Java解惑,ROBUST Java 中文版-Java異常處理、測試與調試
另外我也有學Java的課程老師給我們推薦:Java面向對象編程
❿ 求《 現代編譯原理JAVA中文版》PDF,誰有給我一份wk794834392 @163.com
見附件。