一旦編譯了任何文件(exe,dll,...),只有操作系統可以理解其內容。 有一些已知的十六進制編輯器允許打開和編輯這些文件,但使用十六進制編輯器修改(或甚至進行)exe文件是一項艱鉅的工作。在編譯文件後編輯文件
是否有任何應用程序'反編譯'編譯的文件獲得相當好(和特別理解)的結果?我知道反編譯器,但瞭解它們的輸出也很困難。
任何建議,將不勝感激
感謝; d
一旦編譯了任何文件(exe,dll,...),只有操作系統可以理解其內容。 有一些已知的十六進制編輯器允許打開和編輯這些文件,但使用十六進制編輯器修改(或甚至進行)exe文件是一項艱鉅的工作。在編譯文件後編輯文件
是否有任何應用程序'反編譯'編譯的文件獲得相當好(和特別理解)的結果?我知道反編譯器,但瞭解它們的輸出也很困難。
任何建議,將不勝感激
感謝; d
沒有,反編譯是最好的選擇。 (如果有比現有的更好的東西,那麼這不會被稱爲反編譯器嗎?)
難以理解反編譯器輸出的原因是編譯代碼時會刪除大量信息。如果代碼是以調試模式編譯的,則會保留一些信息。如果程序是通過優化編譯的,則反編譯可能與原始代碼有很大不同。
即使這個模塊會改變那麼多?我想從exe文件中獲取C源代碼幾乎是不可能的,但是關於asm呢?編譯器執行優化來改變原始代碼,但asm比'0'和'1'更容易理解。也許反編譯而不是反編譯將是點 – Antoni
獲取拆解機器代碼是微不足道的。由於它沒有符號常量並且沒有註釋,所以比手工編譯的彙編器更難讀。反彙編反編譯爲彙編代碼,所以我認爲它是一種反編譯器。 –
寫得很好的彙編代碼往往會使用宏作爲函數前導/後繼,訪問結構體,系統調用和其他通用目的 - 當您反彙編時,您將不會得到任何回覆,只是原始彙編源代碼(並且沒有評論當然!)。 –
在編譯之後立即反編譯會有什麼意義? –
可能的重複:[是否有C++反編譯器?](http://stackoverflow.com/questions/205059/is-there-a-c-decompiler) –
您是否有特定的語言? Windows的exe文件不一樣。 – NoChance