我正在分析一个反汇编的dll并卡在了线上
mov ebx,fs:[00000004h]
我想找出用这条指令写入 ebx 的数据的确切物理地址。gdb 告诉我fs = 0x53.
我已经发现地址取决于模式(受保护的或真实的),而且我很确定 CPU 处于保护模式(请参阅*)。所以段 fs 的开始应该存储在 GDT 中的某个地方,对吗?我还找到了 的地址GDT-register (0x009bd5c0007f)
,但是 gdb 不允许我访问或读取寄存器,所以我不知道如何找出 fs 的物理地址(因此,fs:[00000004h]
)。
有人可以帮我吗?
我使用了指令smsw ax
,然后eax
是 0x280031。所以最后一位是1,表示保护模式。我做对了吗?