通过使用“codecave”技术将代码注入另一个进程;是否可以注入代码来创建新线程(并为新线程注入代码),并让该线程与目标进程主线程并行执行?
我可以通过dll注入来管理这一点,但我想知道是否可以只使用纯代码注入。
我们的目的是首先学习不同的注入技术,但最后为随机进程创建一个心跳功能,以便监督执行(高可用性)。Windows是目标操作系统,语言是C/C++ (需要时使用内联ASM )。
谢谢。
发布于 2011-02-04 16:30:20
有CreateRemoteThread函数。
发布于 2011-08-09 03:57:05
当使用诸如"Winject (调用CreateRemoteThread的那个)“这样的动态链接库注入加载器时,很容易创建在目标进程关闭之前一直保留的线程。
只需在函数中创建Thread:
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);
}问候你,迈克尔
发布于 2011-08-09 04:05:37
当然可以,但您还必须将远程线程的代码注入进程(例如,一个函数)。将整个函数注入到远程进程中是一件痛苦的事情,因为没有明确的方法来确定函数的大小。如果注入的代码很小,这种方法会更有效,在这种情况下,您只需注入一个简短的程序集存根,然后调用CreateRemoteThread。
真的,这样做比直接的DLL注入有什么好处呢?你的“心跳”特性可以通过一个注入的DLL很容易地实现。(除非有人告诉我有很大的开销?)
https://stackoverflow.com/questions/4895582
复制相似问题