- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
驅动程序设计基础
驱动程序设计基础
本文档又看雪软件安全论坛提供
专题负责人:CCDeath
参与人员:sislcb、vbcs、qqeleven、xhackx、火影、猪头三
[开题]
目前还没有独立驱动专业,很多人都是自学。写专题可以使所学知识系统化,规范化,
运用起来思路清晰。写代码,刚开始尽量多写。代码能看懂并不能代表就能写,就像有看过
windows部分源代码,不一定就能写出一个windows出来。代码有时候看比较简单的,但还
需在键盘敲一下:-)。编码使要越写越深入,越写越规范。是个量变达到质变的过程。
[经历]
我有幸能在trw2000刘涛涛那边工作过二十几天,以下都是只从技术角度去看一切的。代码
要写的漂亮,不能随便浪费一个字节。精确的是到字节,不是随便定义int类型。个人感觉刘涛涛很有勤奋精神。他挖第一桶金的时候,可以连续工作一个月,赚了十万,头酸背痛的。是个善于学习的人,也能快速移植别人的想法,会做笔记,会思考。虽然现在离开,出来到其他公司一直深受到他的影响。
[结尾]
其实IT行业,不是很幸苦,就是有时候觉得工资不高而已。驱动有时候可以用IDA逆微软dll,看一下微软写的。驱动专题还有很多不完善的地方,需要每个人动起手来,写写。相信你,你会越写越漂亮的:-)
[思路]
先用三个小专题介绍驱动流程,再用三个小专题介绍驱动程序是如何与应用程序进行通信的。
然后分析一个经典驱动源码,最后再写监控程序。
CCDeath
2008.4.11
目录
由此开始 1
真正的驱动入门(一) 5
驱动开发和调试的环境设置 11
inf文件的编写 17
驱动动态加载 20
WDM驱动中使用DeviceIoControl,CreateFile 29
WDM驱动程序使用Buffer I/O,Direct,Neither模式传递数据(修正版) 38
驱动和应用层的异步通信 51
真正的驱动入门(二) 56
filedisk源码分析 67
偶写的Ring0监控程序PRMonitor源代码(ddk+sdk) 71
驱动程序中几个常见例程(读书笔记) 72
过滤驱动中创建IRP时IO堆栈单元的细节处理 76
由此开始
一、三个专题驱动整个入门流程???
内容列表
流程一.配置VC++、不同操作系统对应的DDK、虚拟机VMWare,安装调试器Softice?or?WinDbg;
流程二.编译第一个最简单的Hello程序(DDK环境、VC+DDK环境都可),并用监视器观察输出结果..
流程三.编写*.inf?文件,进行手工安装到电脑上,并设备管理器进行观察.[单独出来专题,可使用流程六]
流程四.编写一个自动加载驱动程序、卸载驱动程序的应用程序。[单独出来专题,可使用流程六]
流程五.设置好调试器,特别是WinDbg双机调试通过com1端口。下载好符号表,转换格式,进行源码调试。
???????Softice调试器,如果是XP系统,请下载补丁.
流程六.提供一个快捷方式解决流程三.四途径,不够建议多多使用上面,多多了解计算机。
装一个DirverStudio3.2,只是用里面的快捷工具,如EzDriverIntaller、DriverMonitor。
任务:通过流程一、二、六、五可以直接完成任务。但是如果你想知道更多就按照流程一、二、三、四、五、六.来完成。
总成果:心中有整个流程思想,编写第一个HelloWorld驱动程序,踏进驱动之门。
[课题3.1]驱动整个入门流程之流程一、二、六、五
课题要求:配置VC++、不同操作系统对应的DDK、虚拟机VMWare,安装调试器Softice?or?WinDbg;
成果3.1:编写得到第一个HelloWorld驱动程序
相关解决方案:
驱动开发和调试环境的设置(由qqeleven完成)
/showthread.php?t=48220
真正的驱动入门(—)[附小程序代码](由ccdeath完成)
/showthread.php?t=56192
[课题3.2]驱动整个入门流程之流程三
课题要求:相信你3.1课题没问题吧,编译好驱动为*.sys。安装*.inf,接着用设备管理器进行观察。介绍*inf格式及如何编写
成果3.2:编写得到一个简单HelloWorld的*.inf
相关解决方案:
inf文件的编写(由sislcb完成)
/showthread.php?t=57571
[课题3.3]驱动整个入门流程之流程四
课题要求:相信你3.1课题没问题吧,这个应用程序可以是控制台?或者?是Win32程序,
打开服务管理之类,创建服务。能够把编译好的驱动程序,加载、卸载测试一下,在监视器进行观察.
成果3
文档评论(0)