显示驱动教程(1)

一、自序

目前,生产显卡的厂商可以说多如牛毛;但是生产显示芯片的厂家寥寥无几——掰手指都数的过来。显示芯片半年换代,除了芯片厂家几乎没人会写显卡驱动,因为还没等你熟悉芯片资料又该升级了。可以预计对显示驱动感兴趣的人很多,但真的写过或要写显示驱动的人并不多。同样,介绍一般的内核驱动程序的编写方法的书或资料大家可以找到很多,而显示驱动的编写却甚少有人提及。于是就有了写一份Microsoft Windows显示驱动程序教程的念头,加上这几年所作的工作都和驱动程序有关,尤其是显示驱动。也希望通过这次机会对过往的工作作个小结,用侯sir的话说就是:发表是最好的记

?

要更好的解释相关的概念,当然少不了一个例子。DDK中的例子当然是最好的参考,可是那些显卡和相关的硬件文档不是每个人都有的(至少我就没有)。所以我准备写一个虚拟显示驱动来作为例子。这个虚拟驱动只使用系统的内存,所有的图形操作都在这块内存中完成。它类似mirror driver但又不完全相同。它的设计目标是演示基本概念而不是性能;如果你写的是真正的显示驱动那么性能往往是你第一个要考虑的问题。

?

由于现在手头上还有其他的工作,所以我只能不定期的的更新它们,希望大家能谅解。有问题可以发Email给我:leerom@163.com

二、准备工作

为了减少这份教程所占的篇幅,我假设您对设备驱动程序的编写有一定的了解,同时您也应该对一些基本的图形学算法和应用层的Windows GDI调用有所了解。如果你没有这些背景知识,那你可能要在手边准备些资料或书籍以便随时查阅。下面是我的推荐:

0.基础的基础 |-学习WIN64驱动开发的硬件准备 |-配置驱动开发环境 ------------------------------ 1.驱动级HelloWorld |-配置驱动测试环境 |-编译和加载内核HelloWorld ------------------------------ 2.内核编程基础 |-WIN64内核编程的基本规则 |-驱动程序与应用程序通信 |-内核里使用内存 |-内核里操作字符串 |-内核里操作文件 |-内核里操作注册表 |-内核里操作进线程 |-驱动里的其它常用代码 ------------------------------ 3.内核HOOK与UNHOOK |-系统调用、WOW64与兼容模式 |-编程实现突破WIN7的PatchGuard |-系统服务描述表结构详解 |-SSDT HOOK和UNHOOK |-SHADOW SSDT HOOK和UNHOOK |-INLINE HOOK和UNHOOK ------------------------------ 4.无HOOK监控技术 |-无HOOK监控进线程启动和退出 |-无HOOK监控模块加载 |-无HOOK监控注册表操作 |-无HOOK监控文件操作 |-无HOOK监控进线程句柄操作 |-使用对象回调监视文件访问 |-无HOOK监控网络访问 |-无HOOK监视修改时间 ------------------------------ 5.零散内容 |-驱动里实现内嵌汇编 |-DKOM隐藏进程+保护进程 |-枚举和隐藏内核模块 |-强制结束进程 |-强制读写进程内存 |-枚举消息钩子 |-强制解锁文件 |-初步探索PE32+格式文件 ------------------------------ 6.用户态HOOK与UNHOOK |-RING3注射DLL到系统进程 |-RING3的INLINE HOOK和UNHOOK |-RING3的EAT HOOK和IAT HOOK ------------------------------ 7.反回调 |-枚举与删除创建进线程回调 |-枚举与删除加载映像回调 |-枚举与删除注册表回调 |-枚举与对抗MiniFilter |-枚举与删除对象回调
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值