首页
社区
课程
招聘
[求助]hook怎么样才能在第一时间钩到创建的新进程?
发表于: 2008-12-13 12:32 7949

[求助]hook怎么样才能在第一时间钩到创建的新进程?

ztd 活跃值
1
2008-12-13 12:32
7949
程序A.exe上有个按钮,点击后会运行B.exe程序.

我如何才能在创建B.exe进程的第一时间向B.exe进程注入代码,注意是第一时间,晚了还有A.exe向它注入代码,那时再注入自己的就没用了.

各位大哥能指点一下吗?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
钩住A的CreateProcessInternalW就差不多了,玩法很多~
2008-12-13 15:30
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
个人感觉应该钩住A的注入函数,创建函数貌似钩住了没用
2008-12-13 16:35
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
怎么没用?拦住它的创建过程,你替它创建然后注入自己的代码,再把创建好的进程扔给它不就行了?
2008-12-13 17:01
0
雪    币: 207
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
谢谢,能具体点吗?
2008-12-13 19:35
0
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
6
拦截NtCreateSector
2008-12-13 21:29
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
7
PsSetCreateProcessNotifyRoutine
2008-12-13 21:32
0
雪    币: 207
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
网上找了一下PsSetCreateProcessNotifyRoutine这个函数能得到进程创建的消息.NtCreateSector这个消息怎么找不到相关的资料?
2008-12-13 22:14
0
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
9
PsSetCreateProcessNotifyRoutine没什么大用,只能得到消息,但得到消息后做不能阻止进程启动了。
NtCreateSection就可以做些事情。
我记得好像是这样吧
2008-12-13 22:27
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
10
楼主的目的不在于阻止进程启动,而在于在进程启动时第一时间(比父进程在用户态做的事情要快)修改其内存,所以PsSetCreateProcessNotifyRoutine还是可以用的。
NtCreateSection比PsSetCreateProcessNotifyRoutine要快一些,就是在将文件映像入内存Section的时候把其中的内存内容给改掉。不过这就不是“进程创建后第一时间”了,因为这个时候进程还没有真正创建。
2008-12-13 22:34
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
11
谁说不能阻止进程启动了....attach写他的入口...这样就起不来了
2008-12-13 22:53
0
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
12
…………没试过,下次看看
2008-12-13 23:21
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
CreateProcessInternal 通用吗?
我记得看过别人写的两个定义
在win2k上比xp上多了一个pointer参数
2008-12-13 23:24
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
14
对“阻止启动”概念的理解不一样吧,写它入口的情况(就是我上面说的修改其内存,用来ANTI这个进程时的最通常方法就是把入口点代码改掉),还是启动了,只不过到入口之后进程挂了而已
不过即使把“阻止进程启动”理解为“阻止CreateProcess的调用成功”,PsSetCreateProcessRoutine也还是有办法的。
比如MJ以前那个XX的“结束进程挑战”所用方法,只不过MJ是在进程结束时把它无限NtDelayException,改成在进程创建时这样做。不过这样调用CreateProcess的那个进程就会挂在内核态回不来?
2008-12-13 23:31
0
雪    币: 182
活跃值: (55)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
驱动防火墙就这么干的。
2008-12-14 02:47
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
16
hook NtCreateSection

一般用MS公开的方法都比较不安全,都被研究过了,比如PsSetCreateProcessNotifyRoutine
2008-12-14 11:36
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
17
现在驱动真是越来越白菜了,我觉得不是什么问题都要用驱动来解决啊,简单有效的方法就可以了
2008-12-14 19:00
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
18
hook NtMapViewOfSection~~
easy to do it~
2008-12-14 19:58
0
游客
登录 | 注册 方可回帖
返回
//