如何手动计算DS:[0040207A]?

时间:2010-09-30 08:51:56

标签: assembly x86

alt text

alt text

如何根据上面的注册信息从77D507EA手动获取结果DS:[0040207A]? 的更新

memory map

1 个答案:

答案 0 :(得分:1)

我看到你使用的是OllyDbg,所以要使它与你的情况有点相关:

DS表示它(地址)在数据段中,[0040207A]是数据段中的地址。如果你转到地址为0x40207A的地址(crtl + g in olly),你会看到一些字节,这是指向MessageBoxA的指针。请注意,您缺少地址所指向的元素大小(在本例中为DWORD PTR),完整说明应为MOV EAX, DWORD PTR DS:[0040207A]

在数据转储(左下角的窗口)中,它应该类似于:0040207A EA 07 D5 77

在CPU窗口中,它可能会被olly正确分析(取决于插件和配置),在这种情况下它看起来像:0040207A MessageBoxA EA 07 D5 77 User32.MessageBoxA

也不是,地址0040207A可能不是静态的,因此,由于Windows重新定义虚拟化二进制文件,因此在不同的会话中执行可能不起作用

<强>更新

看来你的汇编知识和x86架构的知识都很差,因此我建议你阅读这些主题,wikipedia is a good start,否则你不会理解寻址和指针是什么在汇编级别处理