znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
20楼#
发布于:2007-07-06 11:24
但是不可能不用 filecontex
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
21楼#
发布于:2007-07-06 11:30
恩,是的,
我觉得问提还是在于同步方法不对,
我现在自己构建hash链表来保存filecontex,一点都不卡.

2.tooflat的sfilter与杀毒软件冲突的几个地方:
  a.使用Zw****系列函数读取规则和加密标记;
  b.使用RtlInsertElementGenericTable相关的函数来存储文件上下文,具体是哪里引起的没有详细分析,我现在是自己构造hash来存储.存文件上下文指针和加密标记,保证了文件加密标记的持久性.
使用 KeAcquireSpinLock( &gHashLockTable[hashIndex], &oldIrql );
KeReleaseSpinLock( &gHashLockTable[hashIndex], oldIrql );
SfForwardIrpSyncronously,来同步文件上下文表,不要用

KeInitializeEvent(&Event, NotificationEvent, FALSE);
KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
来同步
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
22楼#
发布于:2007-07-06 11:32
市面上能见到过的杀毒软件都测试过了
lavenders
驱动牛犊
驱动牛犊
  • 注册日期2005-08-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分495分
  • 威望54点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2007-07-06 15:57
感谢lsxredrain,我也自己做一个保存filecontext的链表试试,
准备先弄一个简单的链表,如果没问题再作hash表。

不过用Zw****系列函数似乎不可避免,tooflat这种保存加密标记
的方法可能只用来做例子吧,lsxredrain说用hash表保存加密
标记以保证持久性,不太明白,hash表在内存里,重起不就丢了吗?
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
24楼#
发布于:2007-07-06 16:07
所谓的持久是相对于文件关闭而言的,不是相对于重启
lavenders
驱动牛犊
驱动牛犊
  • 注册日期2005-08-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分495分
  • 威望54点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2007-07-06 16:28
lsxredrain,能不能把你的代码也共享一部分,让我们这种新手学习学习。
对于这种蓝屏的问题,应该如何跟踪和调试?
lavenders
驱动牛犊
驱动牛犊
  • 注册日期2005-08-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分495分
  • 威望54点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2007-07-09 17:18
haha,没有回音了,看来lsxredrain的代码还是保密的,
不过我正在自己调试,有问题还要向高手们请教。
另外,我在驱动中如何获得打开文件的进程名?
lavenders
驱动牛犊
驱动牛犊
  • 注册日期2005-08-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分495分
  • 威望54点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2007-07-11 13:02
参照filemon的代码,自己解决了进程名的问题。
上一页 下一页
游客

返回顶部