
内核
文章平均质量分 64
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 评论 -
枚举进程内核句柄
最近由于有一点点的时间,写了一个小工具,主要目的是总结前段时间对内核句柄的一些学习,功能很简单,类似于Process Explorer查看进程句柄的方法,在win7 x64上测试通过,效果如下图:注意有些路径为空是因为x64下32位程序对64位程序用GetModuleFileNameEx获取进程的全路径是无法获取的,这个问题如果有好的解决方案欢迎推荐,自己太菜了...代码上传到了C原创 2013-12-01 20:47:35 · 1777 阅读 · 0 评论