hunbalo
驱动牛犊
驱动牛犊
  • 注册日期2004-04-21
  • 最后登录2020-10-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望124点
  • 贡献值0点
  • 好评度85点
  • 原创分1分
  • 专家分0分
  • 社区居民
阅读:4450回复:14

请教我给usb storage写的uppfilter怎么过滤不到u盘的读写?

楼主#
更多 发布于:2007-04-27 15:39
  我就将toaster下面的filter捎加修改,然后在在\windows\inf\目录下的usbstor.inf中忝加安装Upperfilter的内容,也安装成功了,我用windbg跟踪调试,adddevice很正常,能捕获到pnp及power的irp,但是我读写u盘,却看不到任何的irp.
而我将其改成Lowerfilter时却能抓到很多irp,这是为什么呢?
按照我的理解,usb存储设备的驱动从上到下应该是这样组织的,disk.sys, usbstor.sys.
disk.sys向下发的是srb,usbstor.sys将这些转换为usb总线命令,那么usbstor的Upperfilter应该可以捕获到包装在srb中的cdb.
描述不是很清楚,我付上代码,在vmware5.5, winxp sp2下测试过的.
附件名称/大小 下载次数 最后更新
usbstoruf.rar (65KB)  197 2007-04-27 15:39

最新喜欢:

LeopardLeopar...
xtmzl
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2017-01-24
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望141点
  • 贡献值0点
  • 好评度55点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-04-28 07:38
modify your inf file.

change
{36FC9E60-C465-11CF-8056-444553540000}
to
{4D36E967-E325-11CE-BFC1-08002BE10318}
HOHO
hunbalo
驱动牛犊
驱动牛犊
  • 注册日期2004-04-21
  • 最后登录2020-10-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望124点
  • 贡献值0点
  • 好评度85点
  • 原创分1分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-04-29 23:18
{4D36E967-E325-11CE-BFC1-08002BE10318}是diskdrive类的guid,这样会不会成为disk.sys的upfilter?而不是usbstor.sys的upperfilter?
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-04-30 13:02
引用第2楼hunbalo2007-04-30 01:18发表的“”:
{4D36E967-E325-11CE-BFC1-08002BE10318}是diskdrive类的guid,这样会不会成为disk.sys的upfilter?而不是usbstor.sys的upperfilter?


sure
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
hunbalo
驱动牛犊
驱动牛犊
  • 注册日期2004-04-21
  • 最后登录2020-10-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望124点
  • 贡献值0点
  • 好评度85点
  • 原创分1分
  • 专家分0分
  • 社区居民
地下室#
发布于:2007-05-01 14:33
引用第3楼rayyang20002007-04-30 13:02发表的“”:
sure

那我怎么控制我的过滤驱动仅仅加载为usb mass storage 设备的过滤驱动?
我看了bushound的过滤驱动是加载为usb类的lower filter,
atapi的upper filter,他可以抓到cbd。
我反汇编usbstor.sys看了,其中确实实现了IRP_MJ_SCSI,但我还搞不明白我的 upper filter驱动为什么就过滤不到IRP_MJ_SCSI.
hezhizhi
驱动牛犊
驱动牛犊
  • 注册日期2007-04-06
  • 最后登录2007-05-21
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-05-05 20:06
upper的filter确实抓不到SCSI,
只有lowerfilter才能抓到,

我想可能是因为需要经过usbstor的转换之后才转变成scsi的

我现在能抓到scsi却抓不到sense_mod
hunbalo
驱动牛犊
驱动牛犊
  • 注册日期2004-04-21
  • 最后登录2020-10-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望124点
  • 贡献值0点
  • 好评度85点
  • 原创分1分
  • 专家分0分
  • 社区居民
6楼#
发布于:2007-05-05 23:30
引用第5楼hezhizhi2007-05-05 20:06发表的“”:
upper的filter确实抓不到SCSI,
只有lowerfilter才能抓到,

我想可能是因为需要经过usbstor的转换之后才转变成scsi的

.......

我反了一下disk.sys,貌似mode sense在其中实现,那么disk.sys的lower filter能看到么?
xtmzl
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2017-01-24
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望141点
  • 贡献值0点
  • 好评度55点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2007-05-07 17:01
你要分清楚设备栈.
disk.sys 属于 storage class driver.  如果你把FILTER 挂在 class driver 下
就可以抓到SCSI.
HOHO
hunbalo
驱动牛犊
驱动牛犊
  • 注册日期2004-04-21
  • 最后登录2020-10-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望124点
  • 贡献值0点
  • 好评度85点
  • 原创分1分
  • 专家分0分
  • 社区居民
8楼#
发布于:2007-05-07 19:48
引用第7楼xtmzl2007-05-07 17:01发表的“”:
你要分清楚设备栈.
disk.sys 属于 storage class driver.  如果你把FILTER 挂在 class driver 下
就可以抓到SCSI.

那么对于usb mass storage 设备来说,这个设备栈是什么样的呢?
xtmzl
驱动牛犊
驱动牛犊
  • 注册日期2003-05-21
  • 最后登录2017-01-24
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望141点
  • 贡献值0点
  • 好评度55点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2007-05-08 11:14
你用DeviceTree看一下 usbstor.sys 这个驱动程序.
当插入一块U盘时,会生成两个DeviceObject 一个是 storage stack 的.
另外一个是usb stack .
如果你的FILTER 是USB stack 的upfilter,自然抓不到SCSI cmd.
虽然你的FILTER都看起来挂在USBSTOR上,却是挂在不同的DeviceObject 上的.
HOHO
hunbalo
驱动牛犊
驱动牛犊
  • 注册日期2004-04-21
  • 最后登录2020-10-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望124点
  • 贡献值0点
  • 好评度85点
  • 原创分1分
  • 专家分0分
  • 社区居民
10楼#
发布于:2007-05-12 23:38
引用第9楼xtmzl2007-05-08 11:14发表的“”:
你用DeviceTree看一下 usbstor.sys 这个驱动程序.
当插入一块U盘时,会生成两个DeviceObject 一个是 storage stack 的.
另外一个是usb stack .
如果你的FILTER 是USB stack 的upfilter,自然抓不到SCSI cmd.
虽然你的FILTER都看起来挂在USBSTOR上,却是挂在不同的DeviceObject 上的.

请问我想挂在usbstor上,inf文件要怎么写?upfilter都放在哪个键值上?
谢谢
zxm1983123
驱动牛犊
驱动牛犊
  • 注册日期2005-10-20
  • 最后登录2008-01-22
  • 粉丝1
  • 关注0
  • 积分475分
  • 威望49点
  • 贡献值0点
  • 好评度47点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-01-17 04:43
楼主,请问如何安装您的驱动,直接右键点usbstor.inf安装么?我这样做了怎么没有什么反应?
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
12楼#
发布于:2008-01-17 07:07
这个一个概念性问题:
UsbStore.sys的功能就是完成磁盘访问接口到SCSI命令的转换,UsbStore的上层过滤驱动拦截到的是磁盘读写,而下层过滤驱动拦截的就是包含SCSI命令的URB了。可以使用一些Usb的包解析工具直接看到urb的内容。
一切都是时间问题!
peng_intel
驱动牛犊
驱动牛犊
  • 注册日期2008-02-28
  • 最后登录2009-06-27
  • 粉丝0
  • 关注0
  • 积分248分
  • 威望76点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2008-05-06 22:20
弱弱的问问啊,我是个驱动初学者,我想用DriverStudio做U盘的过滤驱动,过滤写,过滤读写,或者写的数据加密一下,但是不知道怎么把filter挂到哪个驱动上,并且要过滤什么IRP,高手指点,高手指点,我是个学生,谢谢~~
小弟再拜,再拜——
xiaofang5106
驱动牛犊
驱动牛犊
  • 注册日期2008-12-12
  • 最后登录2009-01-16
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2008-12-13 09:43
请教:加载上层过滤驱动在{4D36E967-E325-11CE-BFC1-08002BE10318}下,重启后无法进入系统是什么原因?  
注:{4D36E967-E325-11CE-BFC1-08002BE10318}下本来就有个upperfilters
zhuzhu
游客

返回顶部