C 使用-fPIE编译的可执行文件的强制基址
我带着一个有点奇怪的问题来到这里 有没有办法执行一个程序并指定它应该加载的VirtualAddress 例如:C 使用-fPIE编译的可执行文件的强制基址,c,linux,linker,aslr,C,Linux,Linker,Aslr,我带着一个有点奇怪的问题来到这里 有没有办法执行一个程序并指定它应该加载的VirtualAddress 例如: a.out是一个饼图,具有入口点0x460 b.outfork和exec的a.out,但告诉它,“嘿,我想你在0x200000加载.text部分,所以入口点是0x200460” 我查看了POSIXexec函数系列、ld.so和ld linux.so.2,但没有看到任何可以让它这样做的东西 我的直接解决办法是写我自己的链接器,但如果有什么东西可以让我已经这么做了,那会让我的生活更轻松 谢
a.out
是一个饼图,具有入口点0x460
b.out
fork
和exec
的a.out
,但告诉它,“嘿,我想你在0x200000
加载.text
部分,所以入口点是0x200460
”
我查看了POSIXexec
函数系列、ld.so
和ld linux.so.2
,但没有看到任何可以让它这样做的东西
我的直接解决办法是写我自己的链接器,但如果有什么东西可以让我已经这么做了,那会让我的生活更轻松
谢谢 您可以编写自己的加载程序:mmap图像,填充PLT,并调用入口点。是的,这就是我所想的。只是希望有一条我不知道的路。