首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用codecave注入线程

使用codecave注入线程
EN

Stack Overflow用户
提问于 2011-02-04 15:30:55
回答 5查看 1.6K关注 0票数 0

通过使用“codecave”技术将代码注入另一个进程;是否可以注入代码来创建新线程(并为新线程注入代码),并让该线程与目标进程主线程并行执行?

我可以通过dll注入来管理这一点,但我想知道是否可以只使用纯代码注入。

我们的目的是首先学习不同的注入技术,但最后为随机进程创建一个心跳功能,以便监督执行(高可用性)。Windows是目标操作系统,语言是C/C++ (需要时使用内联ASM )。

谢谢。

EN

回答 5

Stack Overflow用户

发布于 2011-02-04 16:30:20

有CreateRemoteThread函数。

票数 0
EN

Stack Overflow用户

发布于 2011-08-09 03:57:05

当使用诸如"Winject (调用CreateRemoteThread的那个)“这样的动态链接库注入加载器时,很容易创建在目标进程关闭之前一直保留的线程。

只需在函数中创建Thread:

代码语言:javascript
复制
void run_thread(void* ass)
{
  // do stuff until process terminates
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD result, LPVOID lpReserved)
{
  HANDLE handle = (HANDLE)_beginthread(run_thread, 0, 0);
}

问候你,迈克尔

票数 0
EN

Stack Overflow用户

发布于 2011-08-09 04:05:37

当然可以,但您还必须将远程线程的代码注入进程(例如,一个函数)。将整个函数注入到远程进程中是一件痛苦的事情,因为没有明确的方法来确定函数的大小。如果注入的代码很小,这种方法会更有效,在这种情况下,您只需注入一个简短的程序集存根,然后调用CreateRemoteThread。

真的,这样做比直接的DLL注入有什么好处呢?你的“心跳”特性可以通过一个注入的DLL很容易地实现。(除非有人告诉我有很大的开销?)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4895582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档