ollydbg EIP 位置是什么意思?

逆向工程 ollydbg
2021-06-14 08:32:45

我正在阅读一个练习的解决方案(keygen me),我发现了这个:

加载EIP所在的OllyDbg

EIP = 0x51BDE1

这是什么意思 ??我怎么能找到这个!谢谢

1个回答

引用WikiBooks 中的“X86 Assembly book”

EIP(扩展指令指针)寄存器包含在没有进行分支时要执行的下一条指令的地址。

EIP 只能在调用指令后通过堆栈读取。

换句话说,EIP 告诉计算机下一步去哪里执行下一个命令并控制程序的流程。

这个简单的例子显示了在每一步 ( source )自动添加到 eip

eip+1      53                push    ebx
eip+4      8B 54 24 08       mov     edx, [esp+arg_0]
eip+2      31 DB             xor     ebx, ebx
eip+2      89 D3             mov     ebx, edx
eip+3      8D 42 07          lea     eax, [edx+7]
.....

要在 OllyDbg 中发现 EIP,您只需查看右侧面板,您就会找到 EIP 指向的位置。

在此处输入图片说明

因此,在您的示例中EIP = 0x51BDE1,下一条指令的地址将是0x51BDE1. 从你引用的那句话看来,作者似乎想让你在这个地址上做点什么。默认情况下,OllyDbg 会在反汇编窗口中显示 EIP,因此很容易发现它。