我在Windows中使用CreateRemoteThread,想知道在Linux中是否可以实现相同的功能。是否可以在Linux中执行此操作?
答案 0 :(得分:6)
在Linux上执行此操作的传统方法是使用其中的代码创建动态库(.so),然后单独强制将库加载到正在运行的应用程序中。没有一站式商店,因为Windows上有CreateRemoteThread
。
以下是基本步骤:
ptrace
来运行在步骤2中编写的二进制有效负载,这将触发目标应用程序在步骤1中创建的.so上调用_dl_open()
,其中包含您希望运行的实际代码。 (the same link第2部分中给出的样本。)如果您需要在主泵的单独线程中运行代码,则应在步骤1的代码中使用pthread_create
。
希望这能回答你的问题。是的,它比Windows更复杂;但它应该同样有效。此外,您可以重用步骤2和3中的整个代码,以用于未来的远程代码注入项目。
答案 1 :(得分:-2)
`#include pthread.h
int pthread_create(pthread_t * thread,const pthread_attr_t * attr, void *(* start_routine)(void *),void * arg);` 编译并链接-pthread。
请参阅man pthread_create了解详情