如何使用 C/C++ 将代码注入到正在运行的进程中

Stu*_*don 5 c linux gdb memory-management code-injection

我正在寻找有关如何通过在运行时将代码直接注入内存来操作函数的建议。目的是最终运行一个外部应用程序,该应用程序能够出于优化目的操纵正在运行的进程。到目前为止,我已经按照本教程使用 GDB 来操作内存:

http://www.codeproject.com/Articles/33340/Code-Injection-into-Running-Linux-Application?fid=1534990&df=90&mpp=10&sort=Position&spc=Relaxed&tid=4678205

但是,它现在已经过时了,我似乎无法让它在 64 位体系结构上工作......我将不胜感激关于这个主题的任何建议。干杯

von*_*and -4

允许这样做会带来巨大的安全漏洞,因此在任何正常的环境中都是严格禁止的。特别是较新的 Linux(在 x86_64 上更是如此)严格地将可执行内存区域与可修改区域分开。此外,现代 CPU 对其缓存等之外的代码更改不会做出友好的反应。也许最接近的是动态加载共享库。

这种操作是大多数脚本语言(例如 Perl 或 Python)工作的一部分。