
驱动
文章平均质量分 78
sh3llc0der
sh3llc0der
展开
-
内核安全编程(一)读写驱动程序1.1
内核安全编程(一)读写驱动程序读写驱动程序,即应用程序或者上层驱动程序发送主功能码为IRP_MJ_READ和IRP_MJ_WRITE的IO请求包(IRP)DriverEntry函数如下:NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath){ UNICODE_S原创 2013-11-13 00:58:49 · 1520 阅读 · 0 评论 -
内核安全编程(一)读写驱动程序1.2
内核安全编程(一)读写驱动程序1.21.1介绍了内核驱动读写程序中驱动程序部分,接下来学习ring3是如何和ring0的这些驱动来交互的 :)代码:#include "iostream"#include "windows.h"int main(){ HANDLE hFile=CreateFileA("\\\\.\\Driver_write0",GENERIC_WRITE|GEN原创 2013-11-16 23:53:56 · 1021 阅读 · 0 评论 -
内核安全编程(一)IO控制驱动程序
前面通过读写驱动程序来实现ring3与ring0的交互,即通过发送IRP_MJ_READ或者IRP_MJ_WRITE来实现。接下来是通过Control_CODE实现ring3与ring0的通信,ring3通过API DeviceIoControl发送Control_CODe并由相应的IRP处理例程处理这些Control_CODE.ring0层几个主要处理代码如下:#include "s原创 2013-11-18 22:29:05 · 1434 阅读 · 0 评论 -
内核安全编程(一)共享内存
前面分别通过读写驱动(IRP)和IO控制(ControlCOde)两种方法来实现ring3和ring0的通信,今天学习共享内存通信方法共享内存实现有两种方式:1.应用程序分配内存,提供给驱动程序,由驱动程序映射并锁定该内存。2.驱动程序分配内存,然后映射到应用程序地址范围内。这里主要学习按书上的第二种方法的实现。步骤:1.驱动程序分配出一块内核空间。2.使用MDL描述这原创 2013-11-25 23:43:03 · 1549 阅读 · 0 评论