3
A
回答
9
一般來說,像Java,C#和VB.NET這樣的語言相對易於反編譯,因爲它們被編譯爲中間語言,而不是純粹的機器語言。在他們的IL形式中,它們保留比編譯爲機器語言時的C代碼更多的元數據。
從技術上講,你並沒有得到原始的源代碼,而是一個源代碼的變體,當編譯時,它會給你編譯的代碼。它與源代碼不一樣,因爲註釋,註釋和編譯器指令等內容通常不會被轉入編譯後的代碼中。
1
.NET很容易反編譯。最好的工具是RedGate最近收購的.NET reflector。
0
大多數語言都可以反編譯,但有些反編譯比其他語言更容易。 .Net和Java在可執行文件中提供了關於原始程序的更多信息(方法名稱,變量名稱等),以便您獲得更多原始信息。 (例如,我知道這是一個粗略的簡化),所以反編譯器不會知道什麼東西被調用。但是,儘管如此,你仍然可以獲得程序的一些結構。
0
4
託管語言可以很容易反編譯,因爲可執行必須包含大量元數據才能支持reflection。
像C++這樣的語言可以編譯爲本地代碼。在編譯\翻譯過程中,程序結構可以完全改變。
編譯器可以輕鬆替換\ merge \刪除部分代碼。原始和編譯(本地)代碼之間沒有1對1的關係。
相關問題
- 1. 編譯的C文件不可執行
- 2. 反編譯Linux上的win32病毒可執行文件
- 3. 你可以編譯JS到本機可執行文件嗎?
- 4. 帕斯卡單位可以編譯爲可執行文件嗎?
- 5. 編譯後可執行文件出錯
- 6. 如何編譯成可執行文件
- 7. 從.pro編譯可執行文件
- 8. SqlCipher編譯爲Win可執行文件
- 9. Android MediaPlayer類可以播放哪些文件類型?
- 10. 反編譯一個RISC系統/ 6000可執行文件
- 11. 如何反編譯一個ELF 32位LSB可執行文件?
- 12. image.get_serving_url()可以提供哪些類型的文件?
- 13. 可用的ELF可執行文件需要哪些部分?
- 14. 什麼類型的編譯器可以編譯哪種編程語言?
- 15. 從編譯的可執行文件獲取編譯器選項?
- 16. gcc用「-static」編譯的可執行文件中包含哪些函數?哪些功能不是?
- 17. Apache反向代理可以排除某些文件類型嗎?
- 18. 哪些文件類型可以UIDocumentInteractionController預覽?
- 19. 您可以從C可執行文件中提取有關從哪個源文件編譯的信息?
- 20. 將模型編譯爲可執行文件以實現更快的推理?
- 21. ,可執行編譯在編譯時
- 22. 生產可執行文件在Linux(相對於執行編譯)
- 23. 在一個ELF可執行文件中,哪些段可以存儲指針?
- 24. 可以使用vstfs://協議在Visual Studio中執行哪些類型的操作?
- 25. 編譯py2exe從可執行
- 26. 編譯器是否只編譯可以執行的代碼?
- 27. 我可以混淆編譯的.NET可執行文件/程序集嗎?
- 28. 哪些常見的文檔類型可以在其中包含可執行代碼?
- 29. Qt和C++ QtPlugin - 可以處理哪些類型的插件?
- 30. 反編譯java類文件