codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:4183回复:30

求一个对C盘进行保护(禁止用户写)的例程,急用!谢谢了!

楼主#
更多 发布于:2003-05-27 21:48
用户被禁言,该主题自动屏蔽!

最新喜欢:

rhpengrhpeng
jiayu
驱动牛犊
驱动牛犊
  • 注册日期2003-06-11
  • 最后登录2003-06-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-12 08:49
如果单纯写保护,可参考ADM。我上学时候,机房用它写保护骗我们买软盘。我学电脑就是从此起步的,它仅仅是截获了INT13。不过对于WIN来说--我好久没研究这一套了,你有时能区分系统与用户,但怎能区分系统与病毒呢?
wildwind
驱动牛犊
驱动牛犊
  • 注册日期2003-06-10
  • 最后登录2003-06-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-10 15:31
老兄,你的程序写好了吗?
我也要做这样的程序,可我这方面是超级菜鸟,你做好了,把源代码
给我吧。
还有,各位大侠,DDK中的Diskperf只有一个.C,怎么编译啊?
地板#
发布于:2003-06-08 18:04
是可以的啊!你看一下读写请求吧!里面都有读写的信息的
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2003-06-06 22:21
用户被禁言,该主题自动屏蔽!
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-06-04 09:39
用户被禁言,该主题自动屏蔽!
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2003-06-04 09:06
用户被禁言,该主题自动屏蔽!
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-03 19:59
谁告诉你硬盘的保护用filemon实现的,你把他拉出来。
filemon是文件一级的过滤驱动
diskperf是扇区一级的过滤驱动
不限容量的免费邮箱 www.k65.net
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2003-06-03 11:52
用户被禁言,该主题自动屏蔽!
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-03 09:40
shit!做硬盘的还原用filemon,你们老师真是一头猪。
用diskperf!
不限容量的免费邮箱 www.k65.net
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2003-06-02 20:47
用户被禁言,该主题自动屏蔽!
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-06-02 19:43
我就是不懂为什么不让写系统盘,你们老师是不是想法有点古怪。
据我的跟踪,其实往往会对一个文件夹有写的动作,你不让系统写,
哎,会有好多框框跳出来的。
为什么我这几天都没有能够登陆呢?
不限容量的免费邮箱 www.k65.net
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2003-06-02 19:43
用户被禁言,该主题自动屏蔽!
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-06-02 15:58
如果这样做,我觉得你就把问题复杂化了,我也没找到办法确定系统已经初始化完毕,并且,这个概很模糊。倒是进程的数据结构本身应该提供一种标志(比如里程优先级)以区别系统进程和用户进程。不过这种标志容易被修改,有些恶意的程序可以通过修改权限级来执行一些本来无法调用的功能。
Tom_lyd
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
14楼#
发布于:2003-06-02 15:26
用户被禁言,该主题自动屏蔽!
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2003-05-30 20:15
用户被禁言,该主题自动屏蔽!
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-05-29 18:07
几乎不用改,不过你可能需要做以下工作
1。在应用层增配置界面,让用户输入或选择“非许可进程”
2。把用户设定的“非许可进程”送到驱动程序里保存,这可能需要增加一个IOCTL码或用WriteFile实现;驱动层当然需要分配一个空间来存储这些设置。最简单的办法是用一个静态全局数组,并设定一个上限(比如说,最多允许设置10个非许可进程)。
比如说:
typedef struct _refProc
{
        char procname[32];
} REF_PROC;//ref indicate refused.

REF_PROC refproc[10];//存为全局变量,不用你去考虑什么ExAllocatePool之类的调用。
至于怎么把用户的设置赋进来,旁去考虑一下。

3。在IRP_MJ_CREATE里,检测打开文件的里程名,如果和设置里的任意一个进程名匹配,返回失败。(直接返回失败会使应用层看到一个莫名奇妙的消息框),为了做的漂亮一点,你可能需要费神一点。不过,你做到这里就可以了。
Tom_lyd
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
17楼#
发布于:2003-05-29 17:19
用户被禁言,该主题自动屏蔽!
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-05-29 16:55
其实有一个好的折衷的办法,如下:
如果C盘是系统盘,则要求应用程序端配置一个非许可进程表,设定不可以访问C盘的用户进程,除此之外的所有进程都允许写C盘。至于在驱动中如何得进程名自己去看Filemon的代码(你们的老师绝对不会要求到连系统要死也还不允许写。)
如果C盘不是系统盘,则上述要求不必须,但是有一点,Windows系统自身的一些文件,如临时文件,内存交换文件等可能被设定存在C盘上,这些得允许它通过。如果嫌考虑地太多,就用上面一种方法,合情又合理:)
Tom_lyd
codewarrior
禁止发言
禁止发言
  • 注册日期2002-05-23
  • 最后登录2018-07-12
  • 粉丝0
  • 关注0
  • 积分5391分
  • 威望52850点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
  • 社区居民
19楼#
发布于:2003-05-29 02:02
用户被禁言,该主题自动屏蔽!
上一页
游客

返回顶部