題:
是否有任何開源測試套件可以測試反彙編程序的性能?
WilliamKF
2013-03-20 20:56:58 UTC
view on stackexchange narkive permalink

逆向工程中的關鍵工具是良好的反彙編程序,因此,為了確保反彙編程序正常運行,是否有任何好的測試套件可用於測試反彙編程序的正確性?這些體系結構是特定的,還是可以配置為跨多個對象體系結構工作?一個好的測試應該包括檢查更晦澀的體系結構指令和格式不正確的可移植執行文件。

這是我所看到的一個專門針對i86的。有沒有跨架構模塊化的東西?

當您說“反彙編程序的正確性”時,您是說指令解碼器的正確性,還是您指的是正確的控制流程圖恢復和其他種類的高級語義信息?
好吧,哪個是更有趣的問題?我猜是稍後的正確流程圖恢復...
五 答案:
QAZ
2013-03-20 21:31:39 UTC
view on stackexchange narkive permalink

Roberto Paleari,Lorenzo Martignoni,Giampaolo Fresi Roglia和Danilo Bruschi發表了一篇名為“ N版本拆卸:x86拆卸器的差異測試”(PDF)的論文,其中比較了幾種x86拆卸器

引用論文摘要:

反彙編程序的輸出用於許多不同的目的(例如,調試和逆向工程)。因此,反彙編程序代表一長串階段的第一個環節,任何高級機器代碼分析都依賴於此。在本文中,我們證明了許多反彙編程序無法解碼某些指令,因此鏈的第一個鏈接非常弱。我們提出了一種方法,稱為N版本反彙編,用於基於差異分析來驗證反彙編程序的正確性。你。

有趣的紙!這並不是一個完全令人驚訝的結論。 Godefroid和Taly擁有MSR TR(http://research.microsoft.com/apps/pubs/default.aspx?id=156020),在該處,他們可以自動執行指令合成,並在手動指定的語義中發現錯誤。
Andrew
2013-03-20 21:37:43 UTC
view on stackexchange narkive permalink

在我讀過的許多論文中,反編譯工具作者使用 SPEC基準來衡量其反編譯器的有效性。從指令解碼到控制流恢復,這可以從整體上了解系統的運行狀況。這些基準不是免費或開源的。

GCC和clang編譯器還附帶了用於測試的基準。那些可能值得研究。

此外,Regehr的 csmith項目可以生成任意C程序用於編譯器測試/模糊測試。這對於測試反編譯器和二進制分析系統可能有用?

FWIW我們確實使用`cmith`來測試Hex-Rays反編譯器,它確實有幫助。
Ed McMan
2013-03-21 06:35:05 UTC
view on stackexchange narkive permalink

您鏈接到的氣體測試用例套件不僅適用於i386。 父目錄包含針對x86-64,arm,alpha和許多其他體系結構的測試用例。

Ange
2013-03-22 13:12:42 UTC
view on stackexchange narkive permalink

我製作了一個文件,其中包含當時所有的x86操作碼和許多編碼形式,這有助於我積極地發現許多反彙編程序(IDA,Hiew,BeaEngine,OllyDbg,XED, hte ...),尤其是鮮為人知的形式和未記錄的形式。

(可能有點偏離主題-不是現成的測試套件)

您是否為所有文件都提交了錯誤?他們固定了嗎?
我做到了,他們做到了。
jvoisin
2015-08-25 00:05:16 UTC
view on stackexchange narkive permalink

radare2項目的每個反彙編引擎都使用了廣泛的 test-suite,以及更具體的測試(例如 formats),自己的分析功能,...



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...