【发布时间】:2013-03-28 09:44:00
【问题描述】:
我正在分析一个反汇编的dll,卡在了线上
mov ebx,fs:[00000004h]
我想找出使用这条指令写入 ebx 的数据的确切物理地址。 gdb 告诉我fs = 0x53.
我已经发现地址取决于模式(保护或真实),而且我很确定 CPU 处于保护模式(参见 *)。所以段 fs 的开始应该存储在 GDT 的某个地方,对吗?我还找到了GDT-register (0x009bd5c0007f)的地址,但是gdb不允许我访问或读取寄存器,所以我不知道如何找出fs的物理地址(因此,fs:[00000004h]) .
有人可以帮帮我吗?
我使用了指令smsw ax,之后eax 是0x280031。所以最后一位是1,表示保护模式。我说对了吗?
【问题讨论】:
-
嗯?动态链接库?
-
如果这是 32 位代码,它可能是从 TIB/TEB 读取的
标签: assembly x86 memory-address protected-mode gdt