2013-08-23 63 views
1

我想知道爲什麼Java類文件可以輕鬆地重建,而不是隻能拆卸爲彙編代碼的Windows可執行文件,而不是代碼本身。爲什麼可以輕鬆地重建Java類文件

謝謝。

+1

'Reconstructed'意思是,你的意思是反編譯? –

+0

我不知道,當我想到反編譯,我得到彙編指令的圖像,就像如果你反編譯Java類文件成字節碼,但你可以從一個類文件中獲取,對我來說,超過編譯 – aclokay

+0

@user這不是反編譯的常見定義。你在想什麼是反彙編。 – Antimony

回答

0

大多數情況下,因爲Java類文件包含方法和字段名稱,所以反編譯的src看起來與原始文件非常相似,除了註釋。順便說一句,源可能不會恢復100%,例如原始src String s = "123" + 4;將被編譯/反編譯爲String s = "1234";

+0

也許,但它肯定比lea eax更好,[esp + 4] push eax;推04H電話strconcat或任何 – aclokay

1

Java類文件很容易反向工程。

格式非常有規律,非常有限:VM必須能夠驗證代碼是否符合Java代碼的強打字規則。這就像所有優化已停用的C編譯器的輸出:程序結構清晰可見。 (在Java模型,優化發生在虛擬機本身,JIT編譯器運行時。)

注意,您可以使用模糊處理,以幫助保護Java的逆向工程。

+1

技術上字節碼不符合的Java的所有類型規則,只有其中的大多數。 – Antimony

相關問題