阅读:1653回复:5
看luo主页中的疑问:51.不可能同步的RING0->RING3调用 经典之作 2001.6.29
看了陆麟的(51.不可能同步的RING0->RING3调用 经典之作 2001.6.29 :http://www.chinawolf.com/~lu0/sys/20010629.html),有几个问题不明白了:
1。driver中有没有类似ring3中的sleep()函数?如果有就应该可以做到。 2。如果确实没有,那么很多杀毒软件是如何做到暂时禁止对某一个文件的访问?我经常遇到文件备感染病毒,norton报告有病毒,问我怎么处理?这个时候文件是不可以访问的了,其他进程也不能用,应该是从驱动中租塞了整个系统,经过选择后才放开的,这个时候是不是做到了RING0->RING3调用的同步啊? |
|
最新喜欢:![]() |
沙发#
发布于:2002-01-14 12:56
请学习写了以后才发出这类质疑问题.
1.DRIVERA中有SLEEP的功能. 但是你知道调度器是怎么配合运行的么? 2.NORTON没有9X下RING0~RING3的调用同步. 当RING0发现病毒, 他POST一个信号给RING3 UI. 立即将当前ACCESS DENY调. UI负责显示. 如果用户一定要选择是否继续当前操作, 那个选项是\"使用BIOS提示用户\". 全世界没有一家公司愿意为提示一下用户区HACK整个VMM的调度器. |
|
|
板凳#
发布于:2002-01-16 11:13
to:luo斑竹
POST一个信号给RING3 UI,那么这里是用什么信号的呢?就是说通过什么函数实现的啦?:)98里面可以用callapc的,但是nt中好像没有看见呢。再说了,如果有这样函数,底层用类似的sleep函数阻塞,上层处理不就可以做到同步了?这个时候虽然阻塞的是整个vmm,但是毕竟功能实现了 ;) |
|
地板#
发布于:2002-01-17 09:00
to:luo斑竹 只要不等待, filter 随便用什么方法向上面发个信号就可以了。 即使底层 sleep 了, 可是,接受信号的ring3的程序往往需要这个sleep了的thread所把持的资源,所以ring3的程序也可能会等。。 于是, 大家一起sleep, 咿呀咿呀呕......... 用户也就可以去sleep了, 用户sleep可以醒, 可是咱们的ring3 程序在 reset 之前还在 Sleep 呢。 |
|
|
地下室#
发布于:2002-01-17 11:45
那我就简单的问一句:如果不是做到了同步阻塞,怎么才能保证正在执行的程序不执行起来? 我就是想判断某一个程序,如果是这个程序,我就不让他执行。
我的想法就是判断文件名字,如果是这个程序,需要输入密码(在上层),这个时候需要阻塞的,然后判断密码了再决定是否要他执行下去,请问怎么处理? 帮帮忙了!!!高手们 |
|
5楼#
发布于:2002-01-20 09:53
to jjl, iamafr~1:
请先DISASM一下Kernel32.dll的文件操作类函数后再继续讨论巴. 否则继续此话题是无意义的. 如果没有能力DISASM, 我主页上有一篇 文件读写INTERNAL. 你们现看着. 所有的文件操作类代码都有类似的流程. |
|
|