首页
社区
课程
招聘
[求助]钩子如何捕捉createprocess创建的进程
发表于: 2008-3-28 09:24 6415

[求助]钩子如何捕捉createprocess创建的进程

2008-3-28 09:24
6415
我做了一个全局钩子,对CreateProcessA和CreateProcessW进行挂钩。
直接双击某个exe文件可以捕获到,可是我用一个程序启动另一个程序,我用createProcess启动的,这样就捕获不到了,这是怎么回事啊
  
求高手解答

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 424
活跃值: (1844)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
如果是WH_GETMESSAGE钩子,而你又写了个控制台的程序去CreateProcess的话,那自然是钩不到的
2008-3-28 10:24
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
3
奇怪,会这样的吗??~~~不明白
2008-3-28 13:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也是感觉很奇怪的。
我在程序中是这样创建进程的
if( CreateProcess( NULL, // No module name (use command line).
                        _bstr_t(test.exe),//_T("ReturnMoney.exe"), // Command line.
                        NULL,             // Process handle not inheritable.
                        NULL,             // Thread handle not inheritable.
                        FALSE,            // Set handle inheritance to FALSE.
                        0,                // No creation flags.
                        NULL,             // Use parent's environment block.
                        NULL,             // Use parent's starting directory.
                        &si,              // Pointer to STARTUPINFO structure.
                        &pi )             // Pointer to PROCESS_INFORMATION structure.
                )
                {
                        *pThread =  pi.hThread;
                        return pi.hProcess;
                }
我这样创建之后,却没有截获text.ext的控制权
2008-3-28 16:14
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
如果一个程序没有使用user32.dll,那么你的钩子将无法拦截这个程序.比如一个

#include "stdio.h"
#include "windows.h"
void main()
{
     CreateProcess(;;);
}
2008-4-2 09:00
0
游客
登录 | 注册 方可回帖
返回
//