阅读:2218回复:8
内核里可以弹出对话框吗?
就是我hook一个内核的函数,然后要实现弹出一个对话框的功能,不知道怎么实现,麻烦大家给指点一下.
HookZwCreateKey( ... ) { 弹出对话框; ZwCreateKey( ... ); } |
|
最新喜欢:![]() |
沙发#
发布于:2007-07-18 10:47
天才!看看能不能直接弹出,我一般是要做应用程序和内核通讯解决的
|
|
板凳#
发布于:2007-07-18 11:23
本来也想用应用程序和内核通讯做的
但是我弹出对话框的目的是为了阻挡或者延缓一下ZwCreateKey,所以用r3弹出的话,感觉不能及时进行阻挡,所以就想直接在r0弹出了, 或者哪位告诉我怎么在r0发个消息给r3,然后r3弹出对话框? |
|
地板#
发布于:2007-07-18 11:54
ZwRaiseHardError( 0x50000018, //STATUS_DRIVER_UNABLE_TO_LOAD, // STATUS_SERVICE_NOTIFICATION, //
NumberOfParameters, UnicodeStringParameterMask, pUnicodeArguments, ResponseOption, &ReturnValue); // in the 3 Argument array, 2nd tell UNICODE_STRING location to display. // Mask is the bcd(8421) of the display Argument |
|
地下室#
发布于:2007-07-18 12:52
引用第3楼KMK于2007-07-18 11:54发表的 : 但是我只能在ntoskrnl里找到ExRaiseHardError,,试了一下,softice里显示页面错误,然后直接重启了... |
|
5楼#
发布于:2007-07-18 13:31
有必要吗?
|
|
|
6楼#
发布于:2007-07-18 16:04
引用第5楼ProPlayboy于2007-07-18 13:31发表的 : 那你的建议是? |
|
7楼#
发布于:2007-07-18 23:17
在底层想直接显示窗体和用户交互是极为困难的。其实你可以这样做:
在ring0, 1)驱动拦截ZwCreateKey 2) 若ring3程序已启动,则记录要判断的操作,触发ring3等待的事件event1,并等待另一个事件event2(超时时间随需求而定);若ring3程序没启动则执行默认操作 3)若event2被触发,读取处理的结果(ring3返回的结果),并执行相关操作;若event2超时,则执行默认处理。 在ring3, 1)向驱动注册自己(DeviceIoControl) 2)创建事件event1,并等待 3)若event1被触发,则从驱动读取需要处理的数据(DevIo),处理完后将结果返回给驱动(DevIo),并触发event2 这里描述的过程比较简单,但实际上要复杂一些,尤其是对 需要判断的 “操作”的队列 的处理,需要多注意一下 |
|
8楼#
发布于:2007-07-23 19:16
恩,,谢谢了,,
我这样试试 |
|