89
A
回答
65
17
是的,但他們都不會設法產生足夠可讀的代碼,以付出努力。您將花更多時間嘗試使用內部的彙編程序塊來讀取已反編譯的源代碼,而不是從頭開始重寫舊的應用程序。
18
信息在編譯過程中被丟棄。即使反編譯器可以用類和所有東西(它可能不能)產生邏輯等價的代碼,但自編文件的部分在優化的發佈代碼中不見了。沒有變量名稱,沒有例程名稱,沒有類名 - 只是地址。
3
根據原始代碼的大小和編寫得怎麼樣,使用您最喜歡的語言(可能仍然是C++)重新開始,並從最後一個版本中的錯誤中學習。有沒有人曾經說過寫一個扔掉?
n.b.顯然,如果這是一個巨大的產品,那麼它可能不值得花時間。
5
我還沒有看到任何生成C++代碼的反編譯器。我已經看到了一些能夠合理地嘗試生成C代碼的實驗,但它們傾向於依賴於匹配特定編譯器的代碼生成模式(這可能已經改變了,自從我上次研究這個以來已經有一段時間了) )。當然,任何符號信息都將消失。谷歌的「反編譯」。
相關問題
- 1. 沒有CLI頭反編譯?
- 2. 有沒有辦法反編譯java類
- 3. C#編譯沒有visual studio
- 4. 有沒有辦法在C#中編寫LLVM前端編譯器?
- 5. TypeScript:有沒有像__FILE__編譯器宏?
- 6. 有沒有一個Ruby .NET編譯器?
- 7. C#反編譯
- 8. 是否有Visual Basic 6反編譯器?
- 9. 有沒有給c編譯器提供node.js綁定的模塊?
- 10. 爲什麼沒有oracle Forms或Reports反編譯器? (技術上)
- 11. PowerPC的編譯器爲「C++編譯器沒有安裝這個系統錯誤」
- 12. R.string沒有編譯
- 13. SFINAE沒有編譯
- 14. 沒有libc編譯
- 15. inno setup編譯器沒有運行我的C/C++代碼
- 16. 編譯沒有_cplusplus的C文件def
- 17. 程序沒有編譯的C++問題
- 18. g ++沒有編譯我的C++程序
- 19. C++程序編譯沒有參考主
- 20. C++ Builder(XE7)編譯時沒有鏈接?
- 21. C程序編譯但沒有輸出
- 22. C#XOR不會編譯沒有投
- 23. 編譯沒有VS的C#項目
- 24. 有沒有一種工具來反編譯swf到actionscript?
- 25. 微軟C/C++編譯器的C編譯器和C++編譯器有什麼區別?
- 26. 是否有編譯爲機器代碼的C C++ C#編譯器
- 27. XCode8 TextureAtlas編譯器沒有生成
- 28. 沒有node.js的CoffeeScript編譯器?
- 29. Middleman服務器沒有編譯coffeescript
- 30. Angular2 AoT編譯器沒有ngfactory文件?
爲了澄清,IDA只會給予反彙編。還有一個名爲Hex-Rays的附加組件,它將盡可能反編譯爲C/C++源代碼。 – davenpcj 2012-05-05 12:55:10
對於我閱讀的文檔,十六進制光線只輸出C像僞代碼。這並不是說它對反編譯C++毫無用處,你只需要瞭解一些編譯器如何轉換C++結構。 – 2013-04-11 05:32:02
要澄清更多,反彙編是可以用Hex-Rays反編譯的最多將ASM轉換爲C++ ASM可以轉換爲任何編程語言,因爲所有程序都可以作爲ASM運行 – 2014-04-12 12:08:30