【问题标题】:user32!gSharedInfo on Windows 8/10?user32!gSharedInfo 在 Windows 8/10 上?
【发布时间】:2015-11-12 13:33:45
【问题描述】:

在 Windows 7 x64 中,我可以使用

获取 SharedInfo
SHAREDINFO *SharedInfo = (SHAREDINFO *)GetProcAddress(LoadLibraryA("user32"), "gSharedInfo");

在 Windows 8/10 中,它返回地址但无法访问成员,导致访问冲突。

我正在尝试从 SharedInfo->pServerInfo->cHandleEntries 获取 cHandleEntries,但在 Windows 8/10 上无法获取,有人可以指点一下吗?这是一些额外的安全性吗?有什么办法吗?

【问题讨论】:

  • 你确定这个结构的布局没有改变吗?
  • 不,我不是,我想我很久以前就尝试过windbg,但可能需要再试一次。在网上没有找到任何文档,停在 Windows 7 上。
  • 使用 pdbxtract(无权访问 win8/10 pc atm 来附加 windbg),我无法在 windows 10 符号中找到 tagSHAREDINFO 结构。
  • 如果我在 VS 内存查看器中查看 SharedInfo 的原始内存,那就是全部??所以我认为结构是否改变并不重要,我的意思是。
  • 谢谢马克,我们同时打字 :) 我最好的猜测是 MS 认为这是一个太大的安全漏洞。

标签: c++ user32


【解决方案1】:

通过我闪亮的新内核调试实验发现这只是我的一个错误,将 64 位指针存储在 32 位变量类型的东西中。 Windows 7 以某种方式覆盖了我!

【讨论】:

  • 可能是因为 Windows 7 的 64 位 user32.dll(我看不到任何原因)基于低于 4GB 标记...
猜你喜欢
  • 2012-05-16
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
  • 2013-03-30
  • 1970-01-01
  • 2018-08-07
相关资源
最近更新 更多