我已将文件加载到OllyDbg中,在Windows 8上,我看到了这种格式为'7780XXXX'的偏移量:

7780DE50
7780DE52
...


为什么格式有所不同?

请帮助我理解,并提前谢谢。 />

评论

在Windows XP下,如果没有任何冲突(例如,绑定到相同加载地址的DLL之间)没有冲突,则二进制文件倾向于在其首选的加载地址处加载,从而避免了需要重新定位的情况。 Vista引入了地址空间布局随机化(ASLR),这使加载地址在一定范围内随机化。另外,如果使用/ 3GB开关启动了32位Windows,则/ LARGEADDRESSAWARE程序可以看到扩展的地址空间。 Wow64大约需要4GB。共享/系统DLL趋向于7xxxxxxx

#1 楼

因为Windows 8中启用了ASLR,但Windows XP中未启用。启用ASLR时,内存空间布局是随机的。以下是使用方法的示例:

setdllcharacteristics.exe -d "<your executable>.exe"