【发布时间】:2015-04-24 01:51:25
【问题描述】:
我仍在学习汇编并尝试将指令与其操作码联系起来。在阅读 pdf https://code.google.com/p/corkami/wiki/PE101?show=content
它只是剖析了一个在windows中显示消息框的简单程序的PE文件,代码是“删除所有不相关的条目”
push 0
push Title + DATADELTA
push Caption + DATADELTA
push 0
call [__imp__MessageBoxA]
当试图查看生成的 exe 文件“.text”部分时,最后一次调用是用操作码“FF15”表示的,这里检查英特尔手册以及操作码列表http://ref.x86asm.net/coder32.html
你会发现“call”指令操作码只是“FF”,那么“15”指的是什么或来自哪里?
【问题讨论】:
-
我认为您没有正确阅读图表。 Call 与其他几个指令共享 FF。第二个字节选择指令和寻址方式。
-
实际上是
FF /2和/2,加上寻址模式,给你15。