我尝试在ASLR的链接器选项中使用-dynamicbase -pie和-e_mainCRTStartup但是当我在ollydbg中加载它时总是加载400000
答案 0 :(得分:2)
您可以使用-Wl,--nxcompat
启用DEP。您也可以以相同的方式将--dynamicbase
传递给链接器,但遗憾的是它不会发出必要的重定位表。作为解决方法,您可以传递-Wl,--dynamicbase,--export-all-symbols
。像__declspec(dllexport)
这样的单个符号的显式main
也可以工作,这是当前Rust编译器中使用的解决方法。 AFAIK,GCC没有实现SEH,所以你错过了编译时的健全性检查(SafeSEH),你不会错过任何东西。