【发布时间】:2015-11-13 07:37:31
【问题描述】:
我需要调试一个用 C 语言编写的应用程序,该应用程序读取和写入段寄存器 FS。要调试此应用程序,我需要查看 FS 指向的内存地址。
应用程序使用如下代码:
mov rdx, fs:[rcx]
mov fs:[rcx], rsi
如何从/向段寄存器获取读/写的线性虚拟地址?我可以为 Linux 或 Winodws 编译这个应用程序。
【问题讨论】:
-
Windows 将 FS 用于“每个线程”变量,我几次查看汇编代码时,它会将 FS:[...] 转换为常规虚拟地址。 rand() 的当前种子是那些“每个线程”变量之一,这就是我所看到的。
标签: c debugging assembly x86 x86-64