首页
社区
课程
招聘
[求教]狗驱动的工作原理
发表于: 2005-1-4 16:54 5751

[求教]狗驱动的工作原理

2005-1-4 16:54
5751
我一直不明白,对驱动不懂,那位大侠能给讲讲原理!先谢谢了。
我只知道一般会用creatfile 打开某个 *.dll文件,然后就不知道了。那个deviceiocontrol又起了什么作用?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
看一下DeviceIoControl 函数的介绍吧,MSDN里,另外一些编程的手册里也有这个的说明,如果想了解通讯机制的话.有篇文章可以推荐给你.Kmd教程1-内核模式驱动程序基础 ,一些汇编网站上有转载.
http://211.90.225.98:22366/index.asp 这里就有.
另外,还有一些系统级的驱动开发论坛里有专门介绍系统驱动的开发的资料,google一下吧.
2005-1-4 17:25
0
雪    币: 225
活跃值: (146)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
先谢谢老大指点了。deviceiocontrol看名字应该就是端口通讯了,可以这样理解吗---先给狗一些数据,然后返回一些数据?(msdn我回去在查查这个函数的构造!),这个过程中,狗内的处理是不是就是由驱动来控制完成的?不知道驱动里是否有类似deviceiocontrol的函数,如果有,是不是就可以不用deviceiocontrol了呢?另外狗一般都有个dll,具体作用是什么呢,能叫驱动吗?
再次感谢大侠提供的文章,好好学习一下!
2005-1-4 17:37
0
雪    币: 225
活跃值: (146)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
刚才大致看了一下nig兄提供的文章,再问几个问题:狗驱动应该是内核级的吧,扩展名是sys吧,比如深思III的,有个sense3.sys
还有个sense3.dll,这个dll是不是就是负责操作狗的那个库呢?再主程序中,只要调用这个dll来打开关闭狗(准备好对狗io通讯的条件)?然后再用标准的api如deviceiocontrol和狗通讯呢?请指教。。。
2005-1-4 18:42
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
最初由 ytcswb 发布
刚才大致看了一下nig兄提供的文章,再问几个问题:狗驱动应该是内核级的吧,扩展名是sys吧,比如深思III的,有个sense3.sys
还有个sense3.dll,这个dll是不是就是负责操作狗的那个库呢?再主程序中,只要调用这个dll来打开关闭狗(准备好对狗io通讯的条件)?然后再用标准的api如deviceiocontrol和狗通讯呢?请指教。。。


简单的例子     主程序<--> DLL通讯
DLL<--> sys 通讯  sys<-->端口    端口 in out 狗

还有一种就是  主程序<-->sys通讯

因为在Win中,不允许用户直接和端口进行通讯了。9X中VxD来实现,NT以上就用sys类的来实现了。

有些词不准确,但原理如此,帮助记忆吧!
2005-1-4 19:18
0
雪    币: 225
活跃值: (146)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
太谢谢nig兄了。明白了。
另deviceiocontrol是属于 主程序----sys通讯吗?
大家说的重写狗驱动--大概是指dll,而非sys吧?dll严格将就不是狗驱动,不知对否?
2005-1-4 19:28
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
最初由 ytcswb 发布
太谢谢nig兄了。明白了。
另deviceiocontrol是属于 主程序----sys通讯吗?
大家说的重写狗驱动--大概是指dll,而非sys吧?dll严格将就不是狗驱动,不知对否?


对.
2005-1-5 10:33
0
雪    币: 225
活跃值: (146)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
谢谢geat1234大侠了!另能否不用deviceiocontrol,直接利用dll里面的函数操作狗(如果dll里有读狗函数的话)!
2005-1-5 15:48
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 ytcswb 发布
谢谢geat1234大侠了!另能否不用deviceiocontrol,直接利用dll里面的函数操作狗(如果dll里有读狗函数的话)!


可以,别叫我大侠,我当不起.
2005-1-5 17:02
0
雪    币: 225
活跃值: (146)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
^_^先谢谢great1234兄(暂时不叫大侠了,^_^)!
另:
1--dll里如果有读狗函数,那么他底层是否还是调用deviceiocontrol呢?
也就是说还可以使用deviceiocontrol断点?
2--如果不使用deviceiocontrol的话,对狗的操作是通过什么实现的?

先谢谢了.......
2005-1-5 17:31
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
11
DeviceIoControl用的最多,但我分析过国外的狗,有用ReadFile的.呵呵.
2005-1-6 00:14
0
雪    币: 225
活跃值: (146)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
12
再次对nig兄的耐心解答,表示感谢!~~~~
2005-1-6 08:38
0
雪    币: 16
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
13
nig说的没错,跟外设打交道的不一定是deviceioctrl,有的是readfile,不过说回来,就算用deviceioctrl,一样也用readfile来接受数据.
2005-1-6 08:52
0
雪    币: 225
活跃值: (146)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
14
再次对 great1234  

兄的耐心解答,表示感谢!~~~~
2005-1-6 09:16
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
e5v
15
是 createfilea 也可吧??
2005-1-7 18:27
0
游客
登录 | 注册 方可回帖
返回
//