首页 > 代码库 > [转载]Dll注入技术之劫持进程创建注入
[转载]Dll注入技术之劫持进程创建注入
转自:黑客反病毒
DLL注入技术之劫持进程创建注入
劫持进程创建注入原理是利用Windows系统中CreateProcess()这个API创建一个进程,并将第6个参数设为CREATE_SUSPENDED,进而创建一个挂起状态的进程,利用这个进程状态进行远程线程注入DLL,然后用ResumeThread()函数恢复进程。
1.创建挂起的进程 下面是创建一个挂起的计算器程序进程的主要代码:
STARTUPINFO si = {0}; si.cb = sizeof si; si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_SHOW; PROCESS_INFORMATION pi; TCHAR cmdline[MAXBYTE] =_T("calc.exe"); BOOL bRet = ::CreateProcess( NULL, cmdline, NULL, NULL, FALSE, CREATE_SUSPENDED, //需要注意的参数 NULL, NULL, &si, &pi);
2.向挂起的进程中进行远程线程注入DLL 关于远程线程注入在这里就不重复讲述了,但是这里需要注意一个问题,那就是CreateRemoteThread()中第6个参数,需要设为CREATE_SUSPENDED,主要参数如下:
//4. 创建远程线程 m_hInjecthread = ::CreateRemoteThread(hProcess, //远程进程句柄 NULL, //安全属性 0, //栈大小 (LPTHREAD_START_ROUTINE)LoadLibrary, //进程处理函数 pszDllName, //传入参数 CREATE_SUSPENDED, //默认创建后的状态 NULL); //线程ID
3.激活进程中的线程 这里主要用的是ResumeThread()的这个API,需要注意的是先激活主要线程,再激活注入的线程。
劫持进程创建注入其实就是远程线程注入的前期加强版,他可以在进程启动前进行注入,由于进程的线程没有启动,这样就可以躲过待注入进程的检测,提高的注入的成功率。
[转载]Dll注入技术之劫持进程创建注入
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。