首页
社区
课程
招聘
[求助]hook 通讯问题
发表于: 2014-8-14 19:39 8513

[求助]hook 通讯问题

2014-8-14 19:39
8513
ring3 hook 了 ZwCreateProcessEx 后怎么用事件进行同步通讯,弹出对话框来阻止和允许进程创建,类似sendmessage!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (46)
雪    币: 261
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
既然你提到了sendmessage……这是可以直接用的呀,窗口收到特定消息后弹窗提示,把结果作为消息处理结果返回,就可以根据结果决定要不要放行了
2014-8-15 22:03
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
sendmessage服务下不行
2014-8-16 04:25
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
CreateEvent?
2014-8-16 08:17
0
雪    币: 261
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
嗯,可以考虑两个EVENT,与SignalObjectAndWait结合使用
2014-8-16 09:48
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
测试进程中WaitForSingleObject等待事件的时候,如果说住进程突然被结束,会导致死锁,WaitForSingleObject会一直等待下去,如果加了等待时间感觉又太牵强了!不知道有没大神指点下呢?
2014-8-16 10:53
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
提升KIRQL至dispatch然后再降回来
wait要在ring3下做
2014-8-16 10:56
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是在ring3吗?这个好像在ring0里面用的吧!
2014-8-16 10:57
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
大家能不能给一个比较好的思路和方案呢?谢谢大家了
2014-8-16 10:59
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我在描述下问题吧,ring3下hook后用什么方式可以快速通信到主进程,主进程过滤后觉定拦截和放行,sendmessage不能服务下使用,有没有一种通用效率又高的方法呢?
2014-8-16 11:02
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
ring3用WaitForSingleObject等待,现实效果一样
2014-8-16 11:02
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
就是这个办法噢,在dispatch时提到dispatch等级,然后ring3时WaitForSingleObject,ring3操作完降回去,一定要降回去,要不,嘿嘿,死的很难看.

我有一点很诧异,为什么大家都喜欢在内核态等东西呢?那很容易出问题的。
2014-8-16 11:03
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
ring3 hook 后吗?
2014-8-16 11:05
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这个不在驱动中哈,就是ring3 hook 后和住进程 通信问题
2014-8-16 11:08
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我猜你的方案是走三次,ring3 目标进程hook->ring0 拿数据->ring3 回主进程处理,是这意思不?如果的话,我的答案没问题
2014-8-16 11:10
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
如果只是进程间的问题,不需要通信,建个filemapping共享内存就行了。然后在两个进程间各做一个锁,共享内存中做个标志,
我想复杂咧,呵呵

主进程做个线程,轮询处理,目标进程hook位置随便wait一下,等标志清零就行了,跟debugport原理一样
补充一点,两进程间的read和write模式,现在很少用的。
2014-8-16 11:12
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
就是简单的ring3 hook 不走ring0 的,ring3 hook 后通信问题哈
2014-8-16 11:12
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
这个不在驱动中哈,就只是简单的ring3 hook 后 和主进程通信问题哈
2014-8-16 11:14
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
嗯,我想复杂了。
2014-8-16 11:20
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
差不多这个意思,就是简单的ipc通信问题哈,比如hook一个函数,如果用WaitForSingleObject等待主线程后,主线程万一结束了,WaitForSingleObject还是会一直等待的,这个问题怎么解决呢?
2014-8-16 11:23
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
就类似 madCodeHook 中的  SendIpcMessage 函数通信
2014-8-16 11:24
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
噗!用writeRrocessMemory把标志清零。
2014-8-16 11:26
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
有没具体的代码或者流程嘛!
2014-8-16 11:27
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
做一个FIleMapping然后两边同时引用。两边就会共享一块内存。如果你主进程死球了。再找开一一次程序,还是映射FileMapping,然后在共享内存里清零
2014-8-16 11:28
0
雪    币: 142
活跃值: (146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
writeRrocessMemory 会阻塞吗?
2014-8-16 11:28
0
游客
登录 | 注册 方可回帖
返回
//