逆向工程的一个关键工具是一个好的反汇编器,那么为了确保一个反汇编器正常运行,有没有好的测试套件可用于测试一个反汇编器的正确性?这些架构是特定的,还是可以配置为跨多个对象架构工作?一个好的测试应该包括检查更晦涩的架构指令和格式错误的可移植执行文件。
这是我见过的一个专门针对 i86 的。是否有跨架构的模块化?
逆向工程的一个关键工具是一个好的反汇编器,那么为了确保一个反汇编器正常运行,有没有好的测试套件可用于测试一个反汇编器的正确性?这些架构是特定的,还是可以配置为跨多个对象架构工作?一个好的测试应该包括检查更晦涩的架构指令和格式错误的可移植执行文件。
这是我见过的一个专门针对 i86 的。是否有跨架构的模块化?
Roberto Paleari、Lorenzo Martignoni、Giampaolo Fresi Roglia 和 Danilo Bruschi 发表了一篇名为“ N 版本反汇编:x86 反汇编器的差异测试”(PDF)的论文,其中以正式方式比较了几种 x86 反汇编器。
引用论文摘要:
反汇编器的输出用于许多不同的目的(例如,调试和逆向工程)。因此,反汇编程序代表了机器代码的任何高级分析所依赖的一长串阶段的第一个环节。在本文中,我们证明了许多反汇编程序无法解码某些指令,因此链的第一个环节非常薄弱。我们提出了一种称为 N 版本反汇编的方法,以基于差异分析来验证反汇编程序的正确性
不确定这是否与您的问题略有不同,但您可能会感兴趣。
您链接到的 gas 测试用例套件不仅适用于 i386。该父目录包含的x86-64,手臂,α,和许多其他架构的测试用例。
我做了一个文件,包含所有的x86操作码(当时)和多种编码形式,帮助我积极寻找在许多反汇编很多bug(IDA,邱博士,BeaEngine,OllyDbg的,XED,HTE ...),尤其是鲜为人知的形式和无证的。
(可能有点跑题——不是现成的测试套件)