这是我在这个论坛上的第一篇文章。 我在ubuntu上编程。 我想使用C ++将可执行文件注入另一个,当我启动最终的可执行文件时,我希望它执行其代码和注入的代码。 我不知道是否有可能。 我已经尝试将第二个内容注入第一个,但它似乎没有用,它执行第一个程序但不是我注入的。 我知道这是很多病毒的原理,但我不想编写病毒,只是为了学习和好奇。 谢谢你的回答。
答案 0 :(得分:0)
您无法将随机可执行文件注入其他可执行文件。如果你停下来思考它,你会发现它甚至不应该是这样做的。这两个可执行文件都有关于分配给进程的100%CPU时间应该做什么的意见,并且没有通用的方法来合并它们。
如果注入的可执行文件意味着用于注入,那么它还必须带有注入方法。这样做的常用方法是使用LD_PRELOAD
(例如fakeroot)或使用ptrace
(例如fakeroot-ng)。这些技术都没有改变实际的可执行文件。
如果要更改可执行文件以执行您要执行的操作,则需要了解ELF
格式。但是,这超出了堆栈溢出答案的范围。