« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9689964 建立时间:2004年12月20日 |

| |
[rootkit]天数夜读中关于驱动的加载  原创空间, 文章收藏, 软件技术, 电脑与网络
邢红瑞 发表于 2008/10/29 22:30:11 |
最近看谭文兄的天数夜读发现自己对windows的驱动编程,有很多未知的东西。98年开始写vxd开始,除了 nt使用sys 驱动,9x系列使用vxd驱动和部分wdm驱动,2000使用wdm驱动,除vista的wdf不说,wdm 驱动近10年 ,相对稳定,变化不是很大。最早做PCL 724 IO 卡的驱动,基本考虑硬件的地址和寄存器,驱动考虑不多。后来做图像采集卡的驱动,基本是GDI的技术。再者卫星接收卡的驱动基本是网卡的mini port的模型。做的Rootkit的时候,使用应用层的东西比较多。结果就是对驱动架构 理解的不深,正好使用此书好好复习一下。一般高手不屑于使用工具,我还是建议大家使用以下的两个工具,一个加载驱动的,大家不用去启动服务,大家去www.rootkit.com/vault/hoglund/InstDvr.zip下载,另一个DebugView ,这个是www.sysinternals.com的工具,可以让开发者在内核模式下格式化输出的驱动代码,如何使用大家自己看。上百页的文章不如一个简单的例子,大家也可以敲入天数夜读的例子这里是另一个例子basic.c#include "ntddk.h"
VOID OnUnload( IN PDRIVER_OBJECT DriverObject ){ DbgPrint("OnUnload called\n");}
NTSTATUS DriverEntry( IN PDRIVER_OBJECT theDriverObject, IN PUNICODE_STRING theRegistryPath ){ DbgPrint("I loaded!");
theDriverObject->DriverUnload = OnUnload;
return STATUS_SUCCESS;}SOURCES 文件TARGETNAME=basicTARGETPATH=OBJTARGETYPE=TDRIVERSOURCES= basic.c MAKEFILE!INCLUDE $(NTMAKEENV)\makefile.def然后输入 namke 编译。一个有趣的事情,目录中名称不能用$,否则会编译无法通过。加载驱动后,大家就可以在DebugView看到结果。 |
|
|