如果我理解当用户试图执行动态链接 可执行文件(使用execve("foo", "", "")
)而不是加载“foo”文本段动态链接器加载(ld-linux.so.2)并执行。它必须加载程序(“foo”)所需的 库以运行并将“foo”中的某些地址 更改并将控制权交给foo,但是如何实现此目的?动态链接程序如何更改进程的文本段?
怎样(什么系统调用它使用),并在那里 确实在内存中动态加载器加载库和“富” S代码和数据(我猜它不能简单地用 的malloc或MMAP,然后跳转到的代码,因为这应该是不可能的, 对吗?它似乎不太可能会创建临时文件完整的 可执行文件(如staticlly链接的一个),并再次调用excel。)。
“因为那应该是不可能的,对吧?”错误。 –
奇怪的是,不可能在我的桌面和其他电脑上运行,包括手机。你可能想自己做一些关于动态链接的研究,以及如何在Linux(和其他现代操作系统)上初始化程序。 – Olaf