我正在使用 WinDbg 调试 WOW64 下的程序(操作系统为 x64,应用程序为 32 位)。
我在 process 模块(由应用程序而不是 Windows 创建的模块)内部遇到了一些间接调用,并开始关注它。
进入这个调用让我找到一个(*)与任何加载的模块都不匹配的地址:尝试使用 手动搜索lm,没有看到匹配项。使用!address该地址的命令,它说页面已提交但保护是PAGE_NOACCESS. 堆栈跟踪也给了我一个警告“frame ip not in any known module”。
再多一步,我再次收到一个间接调用,fs[0c0h]它是一个存根WOW32Reserved(在更多的单步之后,我进入了ntdll.dll。所以它显然是一些 WOW64 代码)。
问题是,里面的代码是(*)从哪里来的?谁负责?为什么不映射到任何模块?