hongdou
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-03-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2559回复:19

想请教高人一个问题,做过irp拦截的进来一下好吗?

楼主#
更多 发布于:2005-01-14 13:20
前一段时间做了个程序要拦截IRP,当时是使用的方法是改变了Dispath函数指针,但总觉得这种方法不太好。后来考虑了一下IRPTRACE,证明他用的不是这种方法。想了一下就只能是hook IoCallDriver这些函数了。但从没听说过这些服务也可以Hook,所以想请教一下,还有其他的好点的办法拦截IRP吗?

水来啊
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-14 14:51
前一段时间做了个程序要拦截IRP,当时是使用的方法是改变了Dispath函数指针,但总觉得这种方法不太好。后来考虑了一下IRPTRACE,证明他用的不是这种方法。想了一下就只能是hook IoCallDriver这些函数了。但从没听说过这些服务也可以Hook,所以想请教一下,还有其他的好点的办法拦截IRP吗?

 

建议做Filter方式
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-01-14 15:24
写个Filter Driver就可以了。
你的目的什么,要拦截哪些IRP?
在交流中学习。。。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-01-14 15:50
我估计二位都理解错了,楼主的意思是拦截所有IRP的方法
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
nustzhua
驱动中牛
驱动中牛
  • 注册日期2002-06-19
  • 最后登录2015-09-27
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-01-14 21:46
我估计二位都理解错了,楼主的意思是拦截所有IRP的方法

不是人家理解错了而是你理解错了。
不限容量的免费邮箱 www.k65.net
freshwt
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2008-06-13
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-01-15 13:47
拦截所有irp,难到要filter所有device?从IoCallDriver应该是最简便的。
我也想知道该如何做。 :mad:
hongdou
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-03-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-01-15 19:47
不好意思,我说的不清楚,我的意思是想像irptrace那样拦截所有的irp.
水来啊
sampex
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2010-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-01-15 23:18
Upper filter driver, you will get control to all IRPs,

switch (irp->minorfunction)
{
case 1:
   ...
   IoSetcompletionRoutine();
   return IoCallDriver()
}
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-01-17 15:58
Upper filter driver, you will get control to all IRPs,

switch (irp->minorfunction)
{
case 1:
   ...
   IoSetcompletionRoutine();
   return IoCallDriver()
}


Which driver does your upper filter driver build on?
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-01-18 08:29
先想清楚要拦截什么样的irp,然后做相应的device filter。
IoCallDriver可以绕过去,而filter可以做的很难绕过去。
还是做filter好觉得。
hongdou
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-03-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-01-18 09:41
device filter做过了
后来对irptrace停敢兴趣,想弄一个
水来啊
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-01-18 17:29
关注
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
sampex
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2010-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-01-19 08:31
理论上是对任何driver 都可以.只要改动以下inf文件.使windows在安装driver的时候同时安装filter driver
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-01-19 10:23
理论上是对任何driver 都可以.只要改动以下inf文件.使windows在安装driver的时候同时安装filter driver

太复杂了,每种设备驱动难道都得做一个???
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-01-19 14:41
[quote]理论上是对任何driver 都可以.只要改动以下inf文件.使windows在安装driver的时候同时安装filter driver

太复杂了,每种设备驱动难道都得做一个??? [/quote]
但可以动态Filter到某个设备,
论坛中的一位(是某个版的斑竹,不记得了)就做了一个,试用版只能拦截20(具体数字不很清楚了,软件名称也忘记了)个IRP
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
15楼#
发布于:2005-01-19 17:23
程序很多,不过有现成代码的不多,懒得反汇编了,哪位能提供一个???
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2005-01-19 17:29
关注中



[编辑 -  1/19/05 by  paladinii]
Ideas for life!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2005-01-19 19:17
前一段时间做了个程序要拦截IRP,当时是使用的方法是改变了Dispath函数指针,但总觉得这种方法不太好。后来考虑了一下IRPTRACE,证明他用的不是这种方法。想了一下就只能是hook IoCallDriver这些函数了。但从没听说过这些服务也可以Hook,所以想请教一下,还有其他的好点的办法拦截IRP吗?

 


呵呵~~~~你的想法完全正确,加10分~~~
只不过,要想hook这些native api,得玩点技巧,还得多耗点时间

:D
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2005-01-20 10:17
[quote]前一段时间做了个程序要拦截IRP,当时是使用的方法是改变了Dispath函数指针,但总觉得这种方法不太好。后来考虑了一下IRPTRACE,证明他用的不是这种方法。想了一下就只能是hook IoCallDriver这些函数了。但从没听说过这些服务也可以Hook,所以想请教一下,还有其他的好点的办法拦截IRP吗?

 


呵呵~~~~你的想法完全正确,加10分~~~
只不过,要想hook这些native api,得玩点技巧,还得多耗点时间

:D [/quote]
替换服务分发表,或修改该native api函数的入口
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
hongdou
驱动牛犊
驱动牛犊
  • 注册日期2004-06-15
  • 最后登录2006-03-10
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2005-01-20 10:45
正在试验

先看看ntoskrn的PE导出部分是不是dll一样

iocalldriver先是调用IofCalldriver,然后IofCallDriver干了一点点工作(不知干了什么),然后IocallDriver就直接调用Dispatch 函数了。
不过这两天不想干,有结果了告诉大家
谢谢这么多人关注 :D
水来啊
游客

返回顶部