为什么某些 Windows 应用程序包含重定位目录?
如果我对 Windows 可移植可执行文件规范的理解是正确的,那么只有当库无法加载到其首选地址时才需要重定位表。为什么某些应用程序(例如 chrome.exe)包含重定位表?应用程序并不总是加载到其首选地址吗?
If my understanding of the Windows Portable Executable specification is correct, relocation tables are only needed when libraries cannot be loaded at their prefered addresses. Why do some applications (e.g. chrome.exe) contain a relocation table? Are applications not always loaded at their preferred addresses?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是为了 ASLR
AFAIK,当前的系统加载程序不会重新定位 .exe 文件,也许是因为它会增加加载时间。
然而,在下一版本的操作系统中,加载程序将重新定位 EXE。 (当硬件足够快时)
It's for ASLR
AFAIK, current system loader don't relocate .exe files, maybe because it will increase loading time.
However, in next versions of OS, loader will relocate EXEs. (When hardware will be fast enough)