Linux中的CreateRemoteThread

csga3l58  于 2022-10-04  发布在  Linux
关注(0)|答案(2)|浏览(121)

我在Windows中使用CreateRemoteThread,我想知道在Linux中是否也可以做同样的事情。在Linux中可以做到这一点吗?

ccgok5k5

ccgok5k51#

在Linux上这样做的传统方法是创建一个包含代码的动态库(.so),然后单独强制将库加载到正在运行的应用程序中。没有像Windows上的CreateRemoteThread那样的一站式商店。

因此,以下是基本步骤:

1.创建并链接包含您希望在远程进程中执行的代码的.so动态库(在MacOS上为.dylib)。
1.用汇编编写一些非常简单的代码来加载指定的so文件(主要是从this link的第1部分复制和粘贴)。
1.将所述加载器ASM作为二进制有效载荷嵌入在第二代码文件/APP中的缓冲器中。在这里,您将使用ptrace来运行在步骤2中编写的二进制有效负载,这将触发目标应用程序在步骤1中创建的.so上调用_dl_open(),该.so包含您希望运行的实际代码。(样本见the same link,第2部分。)

如果需要在不同于主泵的单独线程中运行代码,则应在步骤1中的代码中使用pthread_create

希望这能回答你的问题。是的,它比Windows更复杂;但它应该也能同样好用。此外,您可以在将来的远程代码注入项目中重复使用步骤2和步骤3中的几乎全部代码。

h43kikqp

h43kikqp2#

`#包含pthread.h

Int pthread_create(pthread_t线程,常量pthline_attr_tattr,void*(start_routes)(void),void*arg);`编译并使用-p线程链接。

有关详细信息,请参阅man pline_create

相关问题