2

我正在研究检测未知病毒的项目,因此我将构建我的小型模拟器来模拟可执行文件的汇编代码,这样我就可以通过将其模拟到虚拟寄存器然后观察发生的情况来检测它是否是病毒。所以我需要帮助来获取c中每个汇编指令的代码。

4

3 回答 3

1

如果你想创建一个 x86 模拟器,你可以看看这个完整的操作码列表: x86 指令集参考。但这似乎不是检测病毒的好方法。

于 2010-01-06T14:35:38.450 回答
1

您正在寻找Bochs,一个 LGPL 的 x86 ISA 和通用硬件的仿真器。

于 2010-01-06T14:50:15.427 回答
0

寄存器值中没有任何内容表明恶意。你最好放弃那个。大多数试图检测恶意行为的沙箱所做的是拦截系统/库调用。

使用上下文调用 ftable+1 %eax=1 %ebx=4000 %ecx=3F 也可能意味着发射核导弹,因为它可能意味着打印你好世界。现在,如果您将自己的功能放在系统和可执行文件之间,您就可以知道发生了什么(将其识别为恶意软件并不那么容易)。

这当然不需要模拟器,所以你最好重新考虑一下,因为编写一个准确的模拟器非常非常困难。

于 2010-01-07T13:08:24.073 回答