随笔分类 -  Windows内核安全与驱动开发

Windows内核
Windows内核开发-10-监听对象
摘要:Windows内核开发-10-监听对象 Windows内核除了可以监听进程,线程、dll还可以监听特定的对象和注册表。这里先讲一下监听对象。 监听对象 内核提供了一种可以监听对特定的对象类型的句柄进行打开或复制的机制。正式支持的对象类型有进程和线程,Windows10还支持一个桌面对象(桌面对象这个 阅读全文
posted @ 2021-10-22 02:23 Sna1lGo 阅读(786) 评论(0) 推荐(1)
Windows内核开发-9-32位和64位的区别
摘要:Windows内核开发-9-32位和64位的区别 32位的应用程序可以完美再64位的电脑上运行,而32位的内核驱动无法再64位的电脑上运行,或者64位的驱动无法在32位的应用程序上运行。这是为什么呢。 原因是在x64的Windows操作系统上,模拟了x86操作系统的操作,并且引入了一个WOW64子系 阅读全文
posted @ 2021-10-19 21:17 Sna1lGo 阅读(873) 评论(2) 推荐(5)
Windows内核开发-额外篇-杂乱知识
摘要:这个博客没啥大用,就感觉对Windows内核开发的概念就记在这里了,应该会长期更新。 驱动类型: 驱动可以分为很多类型,常见的有NT,WDM,WDF驱动,其中NT是最简单的。 WDM是NT上引入的一套驱动模型,支持一些额外的东西。WDF是对WDM的封装和升级简化了驱动。驱动大同小异,NT驱动是驱动中 阅读全文
posted @ 2021-10-15 15:36 Sna1lGo 阅读(269) 评论(0) 推荐(0)
Windows内核开发-7-IRP和派遣函数
摘要:Windows内核-7-IRP和派遣函数 IRP以及派遣函数是Windows中非常重要的概念。IRP 是I/O Request Pocket的简称,意思是I/O操作的请求包,Windows中所有User和Kernel之间的交流都会被封装成一个IRP结构体,然后不同的IRP会被派遣到不同的派遣函数里面 阅读全文
posted @ 2021-09-06 02:45 Sna1lGo 阅读(1188) 评论(1) 推荐(1)
Windows内核开发-8-监听进程、线程和模块
摘要:Windows内核基础知识-8-监听进程、线程和模块 Windows内核有一种强大的机制,可以在重大事件发送时得到通知,比如这里的进程、线程和模块加载通知。 本次采用链表+自动快速互斥体来实现内核的主要架构。 进程通知 只要在内核里面注册了进程通知那么创建进程就会反馈给内核里面。 //注册/销毁进程 阅读全文
posted @ 2021-09-04 13:53 Sna1lGo 阅读(1011) 评论(0) 推荐(1)
Windows内核开发-6-内核机制 Kernel Mechanisms
摘要:Windows内核开发-6-内核机制 Kernel Mechanisms 一部分Windows的内核机制对于驱动开发很有帮助,还有一部分对于内核理解和调试也很有帮助。 Interrupt Request Level中断请求级别 Deferred Procedure Calls(DPC) 延迟调用 A 阅读全文
posted @ 2021-08-22 02:09 Sna1lGo 阅读(1742) 评论(3) 推荐(1)
Windows内核开发-5-调试
摘要:Windows内核开发-5-调试 开发内核也是会有调试的,但是它的调试和普通的我们在User下正常开发的调试不一样,它是直接把整个机器拿来调试,User下通常是把进程附加然后拿来调试。调试也有很多方法,比较常用的是用vs来双机调试和Windbg来双机调试,这里采用Windbg来双机调试,因为就算是v 阅读全文
posted @ 2021-08-09 17:12 Sna1lGo 阅读(1219) 评论(0) 推荐(0)
Windows内核开发-4-从头到尾设计一个简单但是完整的驱动
摘要:Windows内核开发-4-从头到尾设计一个简单但是完整的驱动 这里会构建一个简单但是完整的驱动程序和一个客户端,部署内核执行一些平时user下无法执行的操作。 将通过以下内容进行讲解: 1 介绍 2 驱动初始化 3 Create和Close操作调度实例 4 DeviceIoControl操作调度实 阅读全文
posted @ 2021-07-23 18:25 Sna1lGo 阅读(1328) 评论(0) 推荐(0)
Windows内核开发-3-内核编程基础
摘要:Windows内核开发-3-内核编程基础 这里会深入讲解kernel内核的API、结构体、和一些定义。考察代码在内核驱动中运行的机制。最后把所有知识合在一起写一个有用的驱动。 本章学习要点: 1:通用内核编程指南 2:debug和release版本的区别 3:内核API 4:函数和错误代码 5:字符 阅读全文
posted @ 2021-07-22 00:20 Sna1lGo 阅读(2593) 评论(0) 推荐(1)
Windows内核开发-2-开始内核开发-2-内核开发入门
摘要:Windows内核开发-2-开始内核开发-2- 第一个驱动程序: 直接采用vs2019中的Empty WDM Driver 模块创建: 初始的项目文件夹中有一个Driver Files里面会有一个.inf的文件,没用直接删除就好,然后在源文件里面创建一个.cpp的源文件。 DriverEntry和U 阅读全文
posted @ 2021-07-18 19:38 Sna1lGo 阅读(956) 评论(0) 推荐(0)
Windows内核开发-2-开始内核开发-1-内核驱动开发环境搭建
摘要:Windows内核开发-2-开始内核开发-1-内核驱动开发环境搭建 这里介绍的只是开发驱动的环境搭建,并没有调试。 采用的工具是:vs2019+SDK+WDK。 安装visual studio2019 这个随意,下社区版就行。 安装SDK 在安装visual studio时选择安装的组件,采用C++ 阅读全文
posted @ 2021-07-15 10:54 Sna1lGo 阅读(524) 评论(0) 推荐(0)
Windows内核开发-1-Windows内部概述2
摘要:Windows内部概述-2- 线程: 执行代码的实体是线程。一个线程的包含在进程里面的,线程使用进程提供的资源来运行代码。 一个线程拥有以下的内容: 1:明确的运行模式,用户态或者内核态。 2:执行的环境,包括寄存器和执行状态。 3:一个或两个栈空间,用来存放变量和调用管理。 4:Thread Lo 阅读全文
posted @ 2021-06-24 01:02 Sna1lGo 阅读(745) 评论(1) 推荐(0)
Windows内核开发-1-Windows内部概述1
摘要:Windows内部概述-1- 进程: 进程是一个程序的运行实例的控制和管理对象。一般的程序员所说进程运行,这样的说法是不对的,因为进程不能运行程序,进程只能管理该程序运行。线程才是真正的执行代码的东西。 一个进程应该具备以下的内容: 1: 对于一种可执行程序而言,进程包含了执行代码的所需要的初始代码 阅读全文
posted @ 2021-06-22 20:12 Sna1lGo 阅读(978) 评论(0) 推荐(0)