sys_ck
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4016回复:32

有关Filemon

楼主#
更多 发布于:2003-04-11 14:04
在Filemon源码中有这样一个结构体
//
// Structure for the fileobject/name hash table
//
typedef struct _nameentry {
   PFILE_OBJECT FileObject;
   struct _nameentry *Next;
   CHAR FullPathName[];
} HASH_ENTRY, *PHASH_ENTRY;
它有什么作用》?

另外代码中的H A S H   T A B L E   M A N A G E M E N T
包含的函数FilemonHashCleanup、FilemonFreeHashEntry
有何作用?

如果不用这些,会有什么影响吗?

请各位大侠指点!
sunxinwei
驱动牛犊
驱动牛犊
  • 注册日期2003-04-16
  • 最后登录2003-07-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-28 05:15
实在找不到filemon的代码,劳驾哪位给再发一份,多谢!
sunxinwei@yahoo.com
newkey
驱动小牛
驱动小牛
  • 注册日期2002-10-03
  • 最后登录2013-10-13
  • 粉丝1
  • 关注0
  • 积分45分
  • 威望392点
  • 贡献值1点
  • 好评度90点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-26 13:25
谢谢了
已经收到

www.xDrv.com
sys_ck
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-26 11:00
已经发了
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-26 09:19
楼上的,换个邮箱,好像发不出去哦!
不过本站上有,你自己找一下!
不限容量的免费邮箱 www.k65.net
newkey
驱动小牛
驱动小牛
  • 注册日期2002-10-03
  • 最后登录2013-10-13
  • 粉丝1
  • 关注0
  • 积分45分
  • 威望392点
  • 贡献值1点
  • 好评度90点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-25 22:35
我下载了filemon 的代码
为什么你们提到的 函数,我这一个也没有呢
请问那样还要下载的地方
在这里感谢了

那位大侠 发一份 代码,好吗?
lky@21mail.com

再次感谢
www.xDrv.com
sys_ck
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-12 18:18
我说的都是Filemon源码中的,怎么回事呢?
而且我用的是2kDDK,操作系统也是w2k server
应该不会有问题吧
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-12 18:06
如果你是在2k下用2k ddk编译的而却在nt下使用,会有这个问题。
不限容量的免费邮箱 www.k65.net
sys_ck
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-05-12 17:06
为什么用DDK编译得到的SYS文件只有56.2k,而在EXE文件夹中的SYS文件却有187k?
我把187K的SYS文件用56.2k的代替,就会出错:
“Error loading...:2:系统找不到指定的文件”
怎么回事?
请各位高手指点!
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-04-23 17:35
又问这个问题啊。我试着回答啊。
首先表现在源码中,filemondeviceroutine接受所有发送到filemon这个filter的irp.
filemonhookroutine接受到的是所有发送到filemon下面一个driver的irp.
Types of I/O Requests That Are Sent to a Volume 是对一个voulm的irp请求,
而Types of I/O Requests That Are Sent to a File System是对文件系统本身的irp请求,
这个从这两句话就可以看出来啊。
同一个Volume可能有好几个File System,它们是层状结构。现在filemon位于这个层状结构的
最上层。所以它能得到所有对硬盘文件的访问(这儿好像有问题,filemon好像监控的只是一部分文件)。
不限容量的免费邮箱 www.k65.net
sys_ck
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-04-23 13:36
to vcmfc:
我想实现的就是你说的那种最土的办法,以filemon的框架为基础,
还请大侠多指点一下。

按照我前面的想法,在FilemonHookRoutine中的
case IRP_MJ_CREATE:下,
KeSetEvent(Irp->UserEvent,2,FALSE);
Irp->IoStatus.Status=STATUS_PENDING;
Irp->IoStatus.Information=0;
IoMarkIrpPending(Irp);
hookExt->CreateIrp=Irp;
return STATUS_PENDING;

这样的办法行得通吗?如果不行,应该从哪下手呢?

还有,在IFS中,Types of I/O Requests That Are Sent to a Volume和Types of I/O Requests That Are Sent to a File System有很大的差别;反映在源码中,filemondeviceroutine中用的是Types of I/O Requests That Are Sent to a File System,而在filemonhookroutine中用的是Types of I/O Requests That Are Sent to a Volume
能不能帮忙解释一下?

没有办法,不懂的地方太多了,还请多见谅!

 :)
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-04-23 09:38
“最土的办法,访问就denied,然后弹出对话框,认证,行的话,用户再click一次就可以”
这种办法到是不错,就是用户用起来不太方便。
vcmfc说的对,用filter的话,会安全一点。
不限容量的免费邮箱 www.k65.net
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-04-23 00:55
打开一个文件有3-4个IRP_MJ_CREATE IRP,而且是连续的。

可用锁来解决。

对于这种方式认证方式,我一直对可行性存在怀疑,有时间我试试。


最土的办法,访问就denied,然后弹出对话框,认证,行的话,用户再click一次就可以。我觉得这种折中的办法较可行。


IRP_MJ_CREATE有许多特殊的地方,要多多细心研究。


to nustzhua :

NT安全机制有一个弱点,同时管理员,可以相互更改其权限。你设置不行,如果大家都是管理员,我照访问。可用filter,你连门都没有。

除非你改注册表,可是如果filter连reg都hook,才是我的东东只有我能访问。
sys_ck
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-04-22 20:15
TO nustzhua :
非常感谢!以后有什么问题,还请多指教!

很奇怪,为什么你会觉得我是学着玩玩, :(
看来是态度不太认真。 :)

ntfs有这样的安全特性我知道,
我的任务就是要把这个特性模拟出来,
而关于这方面的资料很少,也没人指导,所以很郁闷阿!
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-04-22 18:07
TO nustzhua : 佩服 !

不用这么夸奖吧,呼呼。
不限容量的免费邮箱 www.k65.net
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-04-22 18:06
难道我看错了?没有啊,的确是这样的,除了个别的。

另外,我想在IRP_MJ_CREATE时,通知应用程序,弹出身份验证的对话框,我是这样想的:先建立一个事件,让它在驱动部分挂起,

 


呼呼,现在看来你不只是学来玩一玩了。下面是一些建议:
把事件的同步的处理好好研究研究;
不要害怕挫折。
其实你这样做也没有多大意义,在ntfs文件系统中有了安全特性,可以限制一个文件(目录)可以被那些用户使用。\"想在IRP_MJ_CREATE时,通知应用程序,弹出身份验证的对话框\"无非也就要达到这样的目的。
忘了说这个功能以前我也想去实现,但自从我知道了ntfs的安全特性之后,就没有这个想法了。:)
祝你好运!
不限容量的免费邮箱 www.k65.net
MacWin
驱动中牛
驱动中牛
  • 注册日期2002-12-16
  • 最后登录2009-05-27
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望44点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-04-22 17:42
TO nustzhua : 佩服 !
Chen
sys_ck
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-04-22 16:47
难道我看错了?没有啊,的确是这样的,除了个别的。

另外,我想在IRP_MJ_CREATE时,通知应用程序,弹出身份验证的对话框,我是这样想的:先建立一个事件,让它在驱动部分挂起,
在FilemonHookRoutine中的
case IRP_MJ_CREATE:下,添加了如下代码:

KeSetEvent(Irp->UserEvent,2,FALSE);
Irp->IoStatus.Status=STATUS_PENDING;
Irp->IoStatus.Information=0;
IoMarkIrpPending(Irp);
hookExt->CreateIrp=Irp;
return STATUS_PENDING;
并且把LogRecord屏蔽了,

但是好像不起作用阿,在filemon中仍然能看到IRP_MJ_CREATE请求
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-04-22 15:06
是这样的么,你好好看看。
不限容量的免费邮箱 www.k65.net
sys_ck
驱动牛犊
驱动牛犊
  • 注册日期2003-03-22
  • 最后登录2003-06-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-04-22 11:52
在IFS中,Types of I/O Requests That Are Sent to a Volume和Types of I/O Requests That Are Sent to a File System有很大的差别;反映在源码中,filemondeviceroutine中用的是Types of I/O Requests That Are Sent to a File System,而在filemonhookroutine中用的是Types of I/O Requests That Are Sent to a Volume
能不能帮忙解释一下?
感激不尽!!!
上一页
游客

返回顶部