获取由指令指针指向的给定地址的指令

时间:2012-01-29 08:51:44

标签: c assembly x86 ia-32

我正在研究这个代码,我需要在给定指令指针的情况下获取程序执行的指令。现在假设我有一个机制为我提供指令的地址,是否可以从中获取操作码(在IA32指令集上)?

2 个答案:

答案 0 :(得分:2)

如果您正在寻找硬件支持的帮助,那不是它的工作原理。这需要在软件中完成。您的代码需要一个操作码和指令表,只需执行查找。

您所描述的内容称为反汇编。有许多开源反汇编程序,如果你可以使用其中一个,它将使你的任务非常简单。看这里:http://en.wikibooks.org/wiki/X86_Disassembly/Disassemblers_and_Decompilers

答案 1 :(得分:2)

你需要一个内存反汇编程序,例如BeaEngineDiStorm,这些可以传递一个内存地址来读取,只需确保地址是可读的。如果您知道函数的字节长度,那么使用这些网站上提供的Run-Length-Dissassemblers会更好一些。