【问题标题】:Linux inject C/C++ dllLinux注入C/C++ dll
【发布时间】:2012-02-26 19:15:48
【问题描述】:

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

谢谢!

【问题讨论】:

  • 您是在寻找export LD_PRELOAD=your_so 还是完全不同的东西?
  • @skwllsp:我认为 PO 询问有关注入现有流程的问题。 Kracken,要修改输出到套接字,您也可以使用 PCap 库
  • 对于运行时注入,请查看 Intel 的 PIN。它是一个隐藏架构细节的 DBI 框架。除此之外,您还可以看到 Valgrind。

标签: c++ c linux inject


【解决方案1】:

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

如果你想注入到一个正在运行的程序中,那就更难了。可以使用ptrace 完成(例如,使用 gdb 附加并调用 dlopen)。但是不可靠,因为你不知道你附加的时候程序是什么状态。

【讨论】:

    【解决方案2】:

    我制作了pyinjector,这是一个工具,您可以使用该工具将正在运行的进程注入共享库。

    要安装,只需运行pip install pyinjector

    用法:inject <pid> <dll_path>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      相关资源
      最近更新 更多