我在Windows中使用CreateRemoteThread,想知道在Linux中是否也有同样的事情。在Linux中可以做到这一点吗?
发布于 2013-02-21 01:36:26
在Linux上这样做的传统方法是创建一个包含代码的动态库(.so),然后分别强制将库加载到正在运行的应用程序中。没有像Windows上的CreateRemoteThread那样的一站式商店。
因此,以下是基本步骤:
ptrace来运行在步骤2中编写的二进制有效负载,这将触发目标应用程序在步骤1中创建的.so上调用_dl_open(),该.so包含您希望运行的实际代码。(示例见the same link,第2部分。)如果您需要在不同于主泵的单独线程中运行代码,则应在步骤1中的代码中使用pthread_create。
希望这能回答你的问题。是的,它比在Windows上更复杂;但它应该同样有效。此外,您还可以将步骤2和步骤3中的全部代码重用于将来的远程代码注入项目。
发布于 2013-02-20 23:05:03
`#include pthread.h
int pthread_create(pthread_t *thread,const pthread_attr_t *attr,pthread_create *(*start_routine) (void *),void *arg);`编译并链接-pthread。
有关详细信息,请参阅man pthread_create
https://stackoverflow.com/questions/10534841
复制相似问题