minifilter开发文件过滤驱动、以及syser调试的经验

minifilter开发文件过滤驱动、以及syser调试的经验。


  刚刚完成一个产品的开发,用了两个月,真不容易,像我这种菜鸟,为了搞

清一个常识,得从老谭的那本古董级C程序设计翻起。


  首先说驱动教程。 楚狂人谭文的《寒江独钓-Windows内核安全编程》和张

帆的《Windows驱动开发技术详解》要反复地读。


  我用的是最新的WDK 7600,那个帮助真叫人汗,英文的倒罢了,怎么不

给个例子让人抄。。。

  
  WDK的安装和配置照楚狂人的说明,调试和安装工具真的很管用。但我照着配

置WINDBG做双机调试不成功,我的机器太老跑虑拟机太慢,我宁愿每天面对三十

次蓝屏重启也不愿等虑拟机总是100%的CPU任务。

  经验如下:
   1、最新版的syser不太支持虑拟机(至少在我的VM上不能用)。
   2、syser试用版限时7天,过时就不能调试你的.sys文件了。但是---

你将它卸载了,重启再安装再重启,还能接着用(我重装了三回)。大可不必用

破解版,这个很好的调试工具是我国高手吴岩峰开发的,如果你为公司干活,还

是要求BOSS破点血,都是coder不容易。
   3、你的.sys文件编译通过后,用配置好的INF安装。
   4、如果这个驱动已经安装过,请用SRVINSTW.EXE卸载后再安装
   5、启动syser进行调试前,请关闭杀毒软件!!!
      6、syser----loder---->lode for debuging---->browse
        路径一定要选择windows/system32/drivers/your.sys
        千万不要选择你编译目录下的那个,没安装的一运行会蓝屏。
   7、在Source  Explorer 页,双击你的.c文件,多点几下,多等一会,

你的源代码就会出现(不是完全的C了,有汇编代码),可以右键设置断点。
   8、dump文件要靠得住,老母猪会上树。我用windbg分析出疑似出问题的

地址,进入SYSer调试,在那个地方设置断点,根本就不带停的---也许是我的

水平还不够。。。。
   

  编码经验:
   
      《寒江独钓-Windows内核安全编程》 的随书源码很好,但并不可靠。我改

那个minifilter的例子,在一字不改的情况下编译报错,等到把该加的都加了,

编译通了,一运行就蓝屏,最后我将和用户层通信的那段全删,才勉强在syser调

试状态下能转了,但直接运行还是蓝屏。

   直到刚才,我把我的代码转移到微软WDK自带的minifilter例子中的

cancelsafe,问题才解决。至于问题在哪里,我也说不法楚。

   关于链表,水平不够,还是不用的好,结构是个好理解的东西。
   
   驱动正在操作(主要是写)的文件,其它程序不要同步写,会蓝!!

   内核驱动要访问配置,读注册表比读文件容易。

   部分变量,要在程序最开始声明,虽然书上的例子是在函数内部声明,但

实际编译是通不过的。特别是WDK6700。

   好了,吃饭哄老婆去也。

 

 很乐意和同道交朋友,转载请注明出处。

你可能感兴趣的:(文件系统驱动过滤)