如何使用mingw在代码块中的exe上启用ASLR,DEP和SafeSEH?

时间:2014-06-18 11:04:36

标签: c++ windows mingw codeblocks buffer-overflow

我尝试在ASLR的链接器选项中使用-dynamicbase -pie和-e_mainCRTStartup但是当我在ollydbg中加载它时总是加载400000

1 个答案:

答案 0 :(得分:2)

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