Linux注入C/C++ dll

Kra*_*ken 0 c c++ linux inject

是否有任何解决方案可用于注入进程自己的 C/C++ dll 并从入口点开始,我需要挂钩进程套接字发送函数并将我自己的代码粘贴到那里。可以在linux上使用吗?

谢谢!

Per*_*son 5

LD_PRELOAD典型的方法是在启动程序之前设置环境变量。例如,请参见tsocks。请注意,尽管有些程序会出于安全原因禁用此功能(它可以窥探密码等),例如 gnupg 会阻止LD_PRELOAD其工作。

如果你想注入正在运行的程序,那就困难得多。ptrace它可以通过(例如附加 gdb 并调用 dlopen)来完成。但它是不可靠的,因为你不知道附加时程序处于什么状态。