内核编程工具集安装:
1:下载安装WDK
2:编写程序(DrvierEntry必选),编译
3:利用srvinstw.exe等工具安装服务,用net start启动服务
4:使用WinDbg,利用串口和虚拟机通信,将目标系统设置为调试模式启动,这样就可以调试系统了。需要设置WinDbg的内核符号表路径,这样可以实现源码级内核调试。
特殊宏:
IN,OUT:输入输出
__in_bcount(Length):输入,并且长度为Length
#pragma alloc_text(INIT, DriverEntry):指定代码位置
设备绑定API:
NTSTATUS IoAttachDevice(
IN PDEVICE_OBJECT SourceDevice,
IN PUNICODE_STRING TargetDevice,
OUT PDEVICE_OBJECT *AttachedDevice
);
NTSTATUS IoAttachDeviceToDeviceStackSafe(
IN PDEVICE_OBJECT SourceDevice,
IN PDEVICE_OBJECT TargetDevice,
IN OUT PDEVICE_OBJECT *AttachedToDeviceObject
);
PDEVICE_OBJECT IoAttachDeviceToDeviceStack(
IN PDEVICE_OBJECT SourceDevice,
IN PDEVICE_OBJECT TargetDevice
);
生成设备:
NTSTATUS IoCreateDevice(
IN PDRIVER_OBJECT DriverObject,
IN ULONG D

本文总结了Windows内核安全编程,涉及内核编程工具的安装和调试,如WDK和WinDbg。讲解了设备绑定API如IoAttachDevice,以及创建设备、获取设备对象的方法。还探讨了键盘输入的处理流程和如何过滤键盘操作,包括通过过滤驱动、Hook技术以及修改中断处理。最后提到了文件访问的驱动结构和通信端口的创建与使用。
最低0.47元/天 解锁文章

4891

被折叠的 条评论
为什么被折叠?



