gpt4 book ai didi

assembly - 如何通过OllyDbg查看位于DS段的值

转载 作者:行者123 更新时间:2023-12-04 18:04:12 26 4
gpt4 key购买 nike

我正在通过 OllyDbg 调试一个 DLL,发现了以下命令:

LEA ECX,DWORD PTR DS:[ECX+EDX+8771F681]

ECX90C85FFFEDX13F5A9CE,所以最终地址是0x90C85FFF + 0x13F5A9CE + 0x8771F681 = 0x12C30004E。不幸的是,我不知道如何查看位于该地址的值。 FPU 窗口中的 Ctrl-G 显示“指定地址上没有内存”。

提前致谢。

最佳答案

请记住,LEA 可用于任何计算,而不仅仅是一个地址(计算的实际结果永远不会被访问/取消引用)。此外,段覆盖对计算没有影响。

  • ecx = 0x402000 ; ebx = 0x20 ; FS 段前缀覆盖(FS 基数 = 0x7FFDD000)
  • mov ecx, [ecx+ebx-4] ; result = ecx = 0x40201c

要快速检查地址是否已映射,在 OllyDbg 中,您可以停在指令处并检查 CPU 窗口和转储窗口之间的迷你窗口:

enter image description here

Address=XXXX 行表示计算结果(在实际执行指令之前)。如果右键单击此行,您可能会看到一个弹出窗口:

  • 如果地址映射到进程地址空间,那么您会在弹出菜单上看到Follow in Dump条目。
  • 如果地址未映射,则弹出菜单不会显示 Follow in dump 条目。

注意:OllyDbg(至少 v2)会将映射的内核地址视为已映射,尽管它们显然不能从用户空间访问。因此,如果 MSB 被设置在一个地址中,就认为它没有被映射。

关于assembly - 如何通过OllyDbg查看位于DS段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29948025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com