【发布时间】:2017-06-15 23:15:30
【问题描述】:
我正在阅读这本书,并试图了解 Dependency Walker。当我选择像 KERNEL32.DLL 之类的东西时,它在右上方窗格中显示了 6 个导入,然后当我单击内核的子类(如 NTDLL.DLL)时,为什么列出的导入比选择 kernel32.dll 时要多?我原以为选择 kernel32 会显示它下所有导入的摘要。
【问题讨论】:
我正在阅读这本书,并试图了解 Dependency Walker。当我选择像 KERNEL32.DLL 之类的东西时,它在右上方窗格中显示了 6 个导入,然后当我单击内核的子类(如 NTDLL.DLL)时,为什么列出的导入比选择 kernel32.dll 时要多?我原以为选择 kernel32 会显示它下所有导入的摘要。
【问题讨论】:
(如果我正确理解了您的问题 - 它是关于 Windows 体系结构,而不是依赖walker。) 在各种重构工作中,MS 所做的 (specifically MinWin) 功能在 Win32 dll 中移动了很多。为了不破坏向后兼容性 - ntdll、kernel32、user32 等仍然导出他们曾经使用的所有函数,并将这些调用路由到其他地方。
您所看到的似乎表明许多功能是从其他地方的 ntdll 卸载的(我认为主要是 KernelBase),而必须从 kernel32 转移的功能较少。
【讨论】: