我想創建一個python腳本,它將反彙編一個二進制文件(一個Windows exe文件是精確的)並分析它的代碼。 我需要能夠採取一定的緩衝區,並提取某種結構包含有關其中的說明信息。用python反彙編 - 沒有簡單的解決方案?
我以前在C中使用libdisasm,並且發現它的界面非常直觀和舒適。 問題是,它的Python接口只能通過SWIG獲得,並且我無法在Windows下正確編譯它。
在可用性方面,diStorm提供了一個很好的開箱即用接口,但它僅提供每條指令的助記符,而不是具有定義指令類型和不指定枚舉類型的二進制結構。 這對我的目的來說很不舒服,而且需要很多我看到的花費時間來包裝界面以使其適合我的需求。我也看過BeaEngine,它實際上提供了我需要的輸出,一個包含有關每條指令的二進制信息的結構,但是它的接口非常奇怪,反直覺,並且在提供時會立即崩潰有錯誤的論據。 CTypes的最終死亡到你的python崩潰。
所以,我很樂意聽到其他的解決方案,比用djgcc或mingw製作SWIGed libdisasm或者爲diStorm編寫OOP包裝要花費的時間更少。 如果有人對如何編譯SWIGed libdisasm或更好的編譯二進制文件(pyd或dll + py)有一些指導,我很樂意聽到/收到它。 :)
提前感謝。