DLL注入技术之劫持进程创建注入
2013-06-28 15:40
183 查看
作者: | xusir98 |
---|---|
日期: | 2013-06-03 |
来源: | 黑客反病毒 (http://bbs.hackav.com) |
出处: | 黑客反病毒 (http://bbs.hackav.com) |
注意: | 转载请务必附带本组信息,否则侵权必究! |
劫持进程创建注入原理是利用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,需要注意的是先激活主要线程,再激活注入的线程。
劫持进程创建注入其实就是远程线程注入的前期加强版,他可以在进程启动前进行注入,由于进程的线程没有启动,这样就可以躲过待注入进程的检测,提高的注入的成功率。
下载测试代码请到原帖地址:http://bbs.hackav.com/thread-8938-1-1.html
相关文章推荐
- Dll注入技术之劫持进程创建注入
- DLL注入技术之劫持进程创建注入
- DLL注入技术之劫持进程创建注入
- Dll注入技术之劫持进程创建注入
- [转载]Dll注入技术之劫持进程创建注入
- Dll注入技术之依赖可信进程注入
- DLL注入技术之依赖可信进程注入
- DLL注入技术之依赖可信进程注入
- Dll注入技术之依赖可信进程注入
- DLL注入技术之依赖可信进程注入
- 进程注入技术:CreateRemoteThread 和 LoadLibrary技术的步骤 (非dll注入)
- [转载]Dll注入技术之依赖可信进程注入
- DLL注入技术之消息钩子注入
- [转载]Dll注入技术之APC注入
- 利用钩子技术控制进程创建(附源代码)
- Dll注入技术之APC注入
- Dll注入技术之注册表注入
- 木马隐藏技术(3) -- 进程注入
- 10种常见的进程注入技术的总结
- 黑客编程技术学习之-小小小小试牛刀:创建进程,下载可执行程序并执行