Linux注入C / C ++ DLL

时间:2012-02-04 12:56:39

标签: c++ c linux inject

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

谢谢!

2 个答案:

答案 0 :(得分:4)

执行此操作的典型方法是在启动程序之前设置LD_PRELOAD环境变量。请参阅示例tsocks。请注意,虽然某些程序会因安全原因(它可以窥探密码等)禁用此功能,例如, gnupg阻止LD_PRELOAD工作。

如果要注入正在运行的程序,则要困难得多。可以使用ptrace完成(例如,使用gdb附加并调用dlopen)。但这是不可靠的,因为你不知道你附加的程序是什么状态。

答案 1 :(得分:0)

我制作了pyinjector,该工具可用于向共享库注入正在运行的进程。

要安装,只需运行pip install pyinjector

用法:inject <pid> <dll_path>