首页
社区
课程
招聘
[求助]如何获取子进程的句柄?
发表于: 2009-1-11 23:00 6668

[求助]如何获取子进程的句柄?

2009-1-11 23:00
6668
我用createprocess函数创建了某exe的一个进程,但是这个进程他自己还可能会创建子进程(比如armadillo),我的问题是:
1、我如何判断我的目标文件会不会创建子进程?
2、如果第一个问题判断出来了是会创建子进程,怎么去获取子进程的句柄?
麻烦大侠分步讲讲,第一问需要哪(几)个函数;第二问需要哪(几)个函数。
调用的顺序是怎么样的?分别什么作用也请大概点一下,我不懂的话再去翻api手册。

Thx

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
2
1.判断不了
2.要获取一个进程的子进程的名柄,可以反过来做,通过遍历所有进程,NtQueryInformationProcess去获取其父进程句柄,然后判断是否为目标父进程,如果是的话就认为本进程是该父进程的子进程,从而获得该父进程的子进程句柄
2009-1-11 23:45
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢大菜1号
这个好像比较难哦

好像有点明白了。。。
2009-1-12 00:27
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
4
看情况。想一些“非常规”的方法,似乎可以一定程度上达到目的,比如用Debug API来拦截对CreateProcess函数的调用,然后获取子进程的程序路径。
2009-1-12 04:10
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
版主说的hook吗?
hook我想过,不过对我来说更难实现

00401B21 . 68 E3344000 push 4034E3 ; /pOldProtect = test.004034E3
00401B26 . 6A 40 push 40 ; |NewProtect = PAGE_EXECUTE_READWRITE
00401B28 . 6A 02 push 2 ; |Size = 2
00401B2A . FF35 C0254000 push dword ptr ds:[4025C0] ; |Address = 004E523B
00401B30 . FF35 1C394000 push dword ptr ds:[40391C] ; |hProcess = 00000118 (window)
00401B36 . E8 3DFFFFFF call 00401A78 ; \VirtualProtectEx

上面的 hProcess = 00000118 (window) 是什么意思?是句柄吗?后面为什么带个window?
问题好多啊
2009-1-12 08:49
0
游客
登录 | 注册 方可回帖
返回
//