如果有任何可用于注入进程自己的 C/C++ dll 并从入口点开始的解决方案,我需要挂钩进程套接字发送函数并将我自己的代码粘贴到那里。它在Linux上可用吗?
谢谢!
典型的方法是LD_PRELOAD
在启动程序之前设置环境变量。参见例如tsocks。请注意,尽管出于安全原因,某些程序会禁用此功能(它可以窥探密码等),例如 gnupg 阻止LD_PRELOAD
工作。
如果你想注入一个正在运行的程序,那就更难了。它可以通过ptrace
(例如使用 gdb 附加并调用 dlopen)来完成。但它是不可靠的,因为你不知道附加时程序是什么状态。
我制作了pyinjector,这是一个工具,您可以使用该工具将正在运行的进程与共享库一起注入。
要安装,只需运行pip install pyinjector
.
用法:inject <pid> <dll_path>