2012-02-04 85 views
0

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

谢谢!

+1

你在寻找'export LD_PRELOAD = your_so'还是完全不同的东西? – 2012-02-04 13:02:46

+0

@skwllsp:我认为PO询问注入现有流程。 Kracken将输出修改为套接字,您可以使用PCap库 – 2012-02-04 13:11:06

+0

在运行时注入英特尔的PIN。这是一个隐藏架构细节的DBI框架。除此之外,你可以看到Valgrind。 – gon1332 2016-01-12 21:17:03

回答

4

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

如果你想注入一个正在运行的程序,它会更加困难。它可以用ptrace完成(例如,用gdb连接并调用dlopen)。但它是不可靠的,因为当你附加时你不知道程序是什么状态。