我正在阅读一个练习的解决方案(keygen me),我发现了这个:
加载EIP所在的OllyDbg
EIP = 0x51BDE1
这是什么意思 ??我怎么能找到这个!谢谢
我正在阅读一个练习的解决方案(keygen me),我发现了这个:
加载EIP所在的OllyDbg
EIP = 0x51BDE1
这是什么意思 ??我怎么能找到这个!谢谢
引用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,因此很容易发现它。