自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 问答 (6)
  • 收藏
  • 关注

原创 [翻译]Exploiting CVE-2015-0057 ——Part 1

前言​ NCC的关于CVE-2015-0057漏洞分析的文章写的十分详细,但是是英文的,这里再一边翻译一边阅读一下吧。这里是第一部分的内容,大致说了如何利用漏洞触发点来构造一个新的堆溢出漏洞利用,其中还包括一些前置知识。传送门漏洞点​ 下面的代码显示了一个相当微妙的bug,下面的代码为win32k!xxxEnableWndSBArrows的汇编:没打补丁前:text:FFFFF97FFF1B157D mov r8d, r13d.text:FFFFF97FFF1B1580 mov rdx,

2020-05-27 18:11:31 570 1

原创 [翻译] Kernel Attacks through User-Mode Callbacks

前言本篇属于前置知识,在后续的CVE复现中需要使用到。原文为英文,一边翻译一边记笔记了!尽量用中文描述的浅显易懂一些。原文传送门1. 背景知识1.1 Win32k.sys介绍​ Win32k本质上由三个主要组件组成:图形设备接口(GDI)、窗口管理器(用户)和支持XP/2000和Longhorn (Vista)显示驱动程序模型的DirectX api(有时也被认为是GDI的一部分)。窗口管理器负责管理Windows用户界面,例如控制窗口显示、管理屏幕输出、从鼠标和键盘收集输入以及向应用程序传递

2020-05-26 23:36:54 657

原创 CVE-2018-8120 漏洞分析复现-Day2-完成

0x00:前言昨天在最后复现的时候还差一点点,已经知道了漏洞点但是还没有完成利用。使用之前在0 day安全上学到的任意地址写漏洞技术似乎不是那么好直接的使用。其实是需要用到滥用GDI bitmap这个技术,今天来学习!参考文章传送门传送门0x01:GDI bitmap本技术重要的部分在于,当创建一个bitmap时,我们可以泄露出其在内核中的地址。这一泄露在Windows10的v1607版本之后被打上了补丁。当创建一个bitmap时,一个结构被附加到了父进程PEB的GdiSharedH

2020-05-25 22:07:14 603

原创 CVE-2018-8120 漏洞分析复现-Day1

0x00:前言对于HEVD靶场的调试告一段落,接下来尝试对一些真实的漏洞进行分析复现。参考:freebuf0x02:背景1. 漏洞描述部分版本Windows系统win32k.sys组件的NtUserSetImeInfoEx()系统服务函数内部未验证内核对象中的空指针对象,普通应用程序可利用该空指针漏洞以内核权限执行任意代码。2. 受影响的版本以下软件版本受到影响。未列出的版本要么超过其支持生命周期,要么不受影响。要确定软件版本或版本的支持生命周期,请查阅Microsoft支持生命周期。W

2020-05-24 21:23:24 959 1

原创 Windows内核漏洞学习-内核利用程序之池溢出

0x00:前言昨天阅读了内核池的一些原理,与Linux堆还是有很多相似的。今天继续调试HEVD中池溢出攻击。参考的原文:传送门0x01:漏洞原理漏洞源码:NTSTATUS TriggerPoolOverflow(IN PVOID UserBuffer, IN SIZE_T Size) { PVOID KernelBuffer = NULL; NTSTATUS Status = STATUS_SUCCESS; PAGED_CODE(); __try {

2020-05-24 00:45:00 712

原创 [翻译]Windows内核漏洞学习-内核池攻击原理

前言在练习HEVD的内核池溢出漏洞之前,首先先需要了解一下内核池溢出的一些攻击方法和原理。这里对kernelpool-exploitation进行翻译阅读一下。kernelpool-exploitation正文ListEntry Flink OverwriteWin7在从ListHeads[n]分配池块(对于给定的块大小)时,使用的安全算法验证的是ListHeads[n]的列表条目结构,而不会去验证即将unlink的实际块的结构。因此,在一个free的块中覆盖它的Flink可能会导致ListH

2020-05-22 22:09:40 720

原创 [翻译]Windows 内核池原理 (win7 x86)

0x00:前言查了一下好像没看到啥关于内核池原理的翻译,国外的一个PPT有详细说Win7池溢出的原理。内容比较长,今天来翻译阅读一下Win 7内核的池部分的原理。Kernel Pool Exploitation on Windows 7 0X01:正文1 内核池的基本属性内核池被分为 Non-Paged Pools, Paged Pools, Session Pools等类型。每个池都由一个池描述符所定义该结构为 POOL_DESCRIPTOR 。通过该结构我们可以追踪有多少

2020-05-21 15:47:35 974

原创 Windows内核漏洞学习-UAF

0x00:前言本章所提到的漏洞为UAF(释放后利用),这也是目前我所接触到的第一个复杂一点的内核漏洞。参考文章:传送门0x01:漏洞原理NTSTATUS FreeUaFObject() { NTSTATUS Status = STATUS_UNSUCCESSFUL; PAGED_CODE(); __try { if (g_UseAfterFreeObject) { DbgPrint("[+] Freeing UaF Object

2020-05-20 18:43:56 800

原创 Windows内核漏洞学习-内核利用程序之整数溢出

0x00:前言这是最后一个简单的漏洞利用了,话不多说直接开始吧。0x01:漏洞原理这里是漏洞程序源码:NTSTATUS TriggerIntegerOverflow(IN PVOID UserBuffer, IN SIZE_T Size) { ULONG Count = 0; NTSTATUS Status = STATUS_SUCCESS; ULONG BufferTerminator = 0xBAD0B0B0; ULONG KernelBuffer[BUFFER_

2020-05-19 18:36:01 476

原创 Windows内核漏洞学习-未初始化栈变量利用

0x00:前言今天继续学习HEVD的未初始化栈变量漏洞利用,根据我的经验,只要是没涉及到堆的,难度应该都是不大的。原文讲的肯定比我好,我这里主要描述出调试过程。传送门1-外文翻译成中文原文传送门2-看雪一位原创0x01:漏洞原理首先看漏洞源码:NTSTATUS TriggerUninitializedStackVariable(IN PVOID UserBuffer) { ULONG UserValue = 0; ULONG MagicValue = 0xBAD0B0B0;

2020-05-18 14:35:31 681 1

原创 Windows内核漏洞学习-空指针解引用

0x00: 前言​ 在看雪论坛看到许多关于HEVD的Windows内核漏洞教程,其中有一个是翻译国外的一个系列,感觉讲的很好,接下来就会跟着他将这个HEVD系列的漏洞走一遍了。昨天学了栈溢出,其实以前就学过,只不过没有操作过内核态的,今天继续学习空指针解引用,也是比较简单的漏洞,方便入门。传送门0x01: 漏洞原理首先看漏洞程序源码NTSTATUS TriggerNullPointerDereference(IN PVOID UserBuffer) { ULONG UserValue

2020-05-17 16:48:07 1209

原创 Windows内核漏洞学习-栈溢出(无GS)

0x00: 前言在上一节中,将HEVD的环境配置完成,接下来进行内核漏洞的调试复现。为什么首先做栈溢出呢,因为我以前学过一些Pwn知识,栈溢出算是最简单的漏洞了。使用的环境为:Windows7 x86 虚拟机系统双机调试环境HEVD靶场环境0x01:漏洞原理栈溢出原理栈溢出,即在局部变量拷贝时,没有控制好拷贝进局部变量的长度。而局部变量又是保存在栈中的,一旦长度过长,就会导致数据溢出淹没栈环境,覆盖EBP甚至返回地址。HEVD漏洞原理分析给出实验漏洞代码。这里安全和不安全的操作都对比给

2020-05-16 18:16:10 842

原创 Windows内核漏洞学习-HEVD的使用

HEVD的使用HEVD简单介绍和下载​ HEVD是一个漏洞靶场,里面有大量写好的漏洞,主要用它来学习漏洞的利用。在Github上就可以找到该项目,下面贴一下下载传送门,我用的是1.2版本。https://github.com/hacksysteam/HackSysExtremeVulnerableDriver/releasesHEVD安装​ 下载好之后,程序有有漏洞和无漏洞两个版本。使用有漏洞的x86版本,根据前面学习到的驱动编程知识,将它安装到Win7 32位环境中。在安装时候选择自动执行,然后

2020-05-15 21:19:46 2467

原创 《0day 安全》-22章-内核漏洞利用技术

内核漏洞利用技术22.1 利用实验之 exploitme.sys​ 首先给出实验代码,这里的代码经过作者微小的修改,但是基本与书上一致,看懂这里的代码需要有一点驱动编程基础。#include<ntddk.h>#define DEVICE_NAME L"\\Device\\ExploitMe" #define DEVICE_LINK L"\\DosDevices\\ExploitMe" #define FILE_DEVICE_EXPLOIT_ME 0x00008888 #define

2020-05-14 19:23:44 622

原创 探索ring0-内核漏洞概述 和 实验环境配置

探索ring0内核漏洞概述内核漏洞的分类​ 运行在ring0上的操作系统内核、设备驱动、第三方驱动能共享同一个虚拟地址空间,可以完全访问系统空间的所有内存,而不像用户态进程那样拥有独立私有的内存空间。由于内核程序的特殊性,内核程序漏洞类型也更加丰富。​ 可以从漏洞的严重程度和漏洞的利用原理两个角度来对内核漏洞进行分类。漏洞的严重程度是指漏洞利用后所造成的危害;漏洞的利用原理指漏洞利用过程中使用的原理和技术。​ 按照漏洞严重程度依次可以分为:远程拒绝服务、本地拒绝服务、远程任意代码执行和本地权限提升

2020-05-13 18:02:21 634

原创 20-5-12没学

今天主要把论文肝完了,虽然我的论文是真的水刚刚交了初稿有一些疲惫。前面学习驱动编程的目的主要是为了学习内核漏洞打基础,感觉差不多了,剩下的只有遇到了再回来补了。接下来一段时间的学习计划从《0day 安全》第二版这本书开始入门一下Windows漏洞,之前我已经学习过了栈溢出的部分,打算主要从堆的溢出开始学,或者去看看栈溢出还有什么忘记了的。先看看吧。后续再从hevd靶场实际漏洞。希望把这两步走完就能正式开始看CVE了。。。顶...

2020-05-12 22:23:23 167

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day6

11.6 读写操作的过滤11.6.1 设置一个读处理函数​ 文件系统有多种操作,但是读写操作仍然是最重要的。比如杀毒软件对文件内容的读写进行监控,可以达到扫描病毒的目的。简单一点就是,文件在被读取时,杀毒软件扫描其中是否含有病毒特征码,就可以防止一些病毒从硬盘被加载到内存中执行;如果任意文件在被写入到磁盘时,也可以检测其中写入的内容是否含有病毒特征码,这样就可以防止病毒被写入硬盘,也就可以防止硬盘上的文件被感染。​ 在之前的代码中已经绑定了文件系统卷,而所有的文件都是保存在卷上的,所以处理截获到的主功

2020-05-11 22:00:36 391

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day5

文件系统的过滤与监控11.5 文件系统卷设备的绑定11.5.1 从IRP中获得VPB指针​ 回忆前面说到的文件系统控制请求中的挂载请求。主功能号为 IRP_MJ_FILE_SYSTEM_CONTROL,次功能号为 IRP_MN_MOUNT_VOLUME 的IRP。对这种挂载卷的IRP的处理,调用了函数 SfFsControlMountVolume 这个函数的代码。在其中实现了绑定文件系系统卷的功能。​ 从这个IRP的信息中,如何得到文件系统的卷设备呢? 在 irpSp->Parameters.

2020-05-10 14:10:12 327

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day4

文件系统的过滤11.4 文件系统控制设备的绑定11.4.1 生成文件系统控制设备的过滤设备接下来要生成过滤设备,这里再次用到设备拓展。下面给出过本过滤设备设备拓展的数据结构。typedef struct _SFILTER_DEVICE_EXTENSION{ //绑定的文件系统设备(真实设备) PDEVICE_OBJECT AttachedToDeviceObject; //与文件系统设备相关的真实设备,这个在绑定时使用 PDEVICE_OBJECT StorageS

2020-05-09 23:24:23 353

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day3

文件系统的过滤与监控11.3 设备的绑定前期工作11.3.1 动态地选择绑定函数​ sfilter 有一个有趣的地方是,使用了动态加载的方法来使用内核函数。只有高版本的Windows系统上才有IoAttachDeviceToDeviceStackSafe 这个函数。如果我们直接使用这个函数,那么在低版本的Windows系统上就会直接加载失败。因此,使用动态加载此类函数的好处就是,即使在低版本的Windows上也能成功加载。​ 在动态加载该函数时,如果失败则会使指针为NULL,而此时即使为NULL,我

2020-05-08 23:02:47 326

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day2

文件系统的过滤与监控文件系统的分发函数11.2.1 普通的分发函数​ 上一节仅仅生成了控制设备,开发文件过滤驱动的主要工作还是撰写分发函数。在 DriverEntry 函数代码中,DriverObject 是参数驱动对象指针,现在来指定几个分发函数。SfPassThrough 负责所有不需要的处理,直接下发到下层驱动的IRP。for(i=0;i<IRP_MJ_MAXIMUM_FUN...

2020-05-07 13:48:15 439

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day1

文件系统的过滤与监控​ 文件系统过来吧的目标,是捕获Windows系统对文件的种种操作行为,比如文件的创建、打开、读写、目录的创建、打开、枚举、改名、删除等。捕获这些操作,能够实现许多强大的功能,比如检查病毒、数据加密、数据备份、安全监控等。​ 不要把文件系统驱动和存储驱动和混淆。硬盘是典型的存储设备,只负责数据的读与写;而文件系统则不管数据是如何读写到硬盘或其他设备上的,它只负责数据是如何在...

2020-05-06 11:32:43 586

原创 《Windows内核安全与驱动编程》-第十章-磁盘的过滤学习-day4

10.3.6 bitmap 的作用和分析​ 在之前我们多次看到了bitmap,但是却一直不知道它是什么,它的作用是干嘛。接下来我们去看,但是具体的bitmap 的实现很复杂,如果没有特殊兴趣的话,可以只看它的接口说明,而不管具体的实现过程。​ 顾名思义,bitmap就是一个位图。它实际上是一些内存块,这些内存块的每一位用来标识一个磁盘上的最小访问单位,一般情况下是一个扇区。每一位可以被设置或者...

2020-05-05 22:16:19 289

原创 《Windows内核安全与驱动编程》-第十章-磁盘的过滤学习-day3

磁盘的过滤10.3 驱动分析10.3.5 DeviceIoControl 请求的处理​ 该请求的处理函数是 DPDispatchDeviceControl ,作为一个磁盘过滤设备,理论上是不需要对 DeciceControl 做任何处理的,只需要转发给下层设备即可。但是这里本驱动需要截获一个特殊的请求——IOCTL_VOLUME_ONLINE,这个请求是由Windows系统发出的,它本身的作...

2020-05-04 22:56:32 308

原创 《Windows内核安全与驱动编程》-第十章-磁盘的过滤学习-day2

磁盘的过滤10.3 驱动分析10.3.3 PnP 请求的处理​ 作为一个卷过滤驱动 PnP 请求处理是非常重要的,因为 Windows 操作系统在某些时刻会向存储设备发出专门的请求,如果没有进行正确的处理,将会造成系统无法正常关机等一系列问题。​ 在收到 PnP 请求之后,由于在 DriverEntry 中对 PnP 请求的处理函数特别设置成了 DPDispatchPnp 函数,所以这个函...

2020-05-03 21:23:15 409

原创 《Windows内核安全与驱动编程》-第十章-磁盘的过滤学习-day1

文章目录磁盘的过滤10.1 磁盘过滤驱动的概念10.1.1 设备过滤和类过滤10.1.2 磁盘设备和磁盘卷设备过滤驱动10.1.3 注册表和磁盘卷设备过滤驱动10.2 具有还原功能的磁盘卷过滤驱动10.2.1 简介10.2.2 基本思想10.3 驱动分析10.3.1 DriverEntry 函数10.3.2 AddDevice 函数明日计划磁盘的过滤10.1 磁盘过滤驱动的概念10.1.1 ...

2020-05-02 23:11:43 1014

原创 《Windows内核安全与驱动编程》-第九章-磁盘的虚拟-day-3.md

磁盘的虚拟9.5 FAT12/16 磁盘卷初始化9.5.2 Ramdisk 对磁盘的初始化​ 在上一节中说到,在 Ramdisk 驱动中的 EvtDriverDeviceAdd 类函数里会调用 RamDiskFormatDisk 函数对所分配的用于做磁盘镜像的内存空间进行初始化。上一小节介绍了磁盘卷结构,接下来学习如何初始化这个空间。​ 首先看一下这个函数的本地变量声名。//一个指向磁盘...

2020-05-01 21:56:54 334

原创 《Windows内核安全与驱动编程》-第九章-磁盘的虚拟-day-2

文章目录磁盘的虚拟9.4 EvtDriverAdd 函数9.4.5 用户配置的初始化9.4.6 链接给应用程序9.4.7 小结9.5 FAT12/16 磁盘卷的初始化9.5.1 磁盘卷结构简介明日计划磁盘的虚拟9.4 EvtDriverAdd 函数9.4.5 用户配置的初始化​ 当前,根据上一次的学习内容,设备和用来处理设备请求的队列都建立好了。接下来初始化与内存盘相关的一些数据结构。内存...

2020-04-30 16:57:11 285

原创 《Windows内核安全与驱动编程》-第九章-磁盘的虚拟-day-1

文章目录磁盘的虚拟9.1 虚拟的磁盘9.2 一个具体的例子入口函数9.3.1 入口函数的定义9.3.2 Ramdisk 驱动入口函数9.4 EvtDriverDeviceAdd 函数9.4.1 EvtDriverDetivceAdd 的定义9.4.2 局部变量的声明9.4.3 磁盘设备的创建9.4.4 如何处理发往设备的请求明日计划:磁盘的虚拟9.1 虚拟的磁盘​ 虚拟磁盘,是我们可以创造的...

2020-04-29 22:50:02 546

原创 《Windows内核安全与驱动编程》-第八章-键盘的过滤学习-day5

文章目录键盘的过滤8.6 Hook键盘中断反过滤8.6.1 中断: IRQ和NT8.6.2 如何修改 IDT8.6.3 替换 IDT 中的跳转地址8.7 直接使用端口操作键盘8.7.1 读取键盘数据和命令端口明日计划键盘的过滤8.6 Hook键盘中断反过滤​ 如果不想让键盘驱过滤驱动程序或回调函数首先获得按键,则必须比端口驱动更加底层一些。举一个例子:​ 早期版本的 QQ 反盗号驱动原理是...

2020-04-28 17:04:16 392

原创 《Windows内核安全与驱动编程》-第八章-键盘的过滤学习-day-4

键盘的过滤Hook 分发函数8.5.4 端口驱动和类驱动之间的协作机制​ 当键盘上一个键被按下时,产生一个 Make Code 引发键盘中断; 当键盘上一个键被松开时,产生一个 Break Code 引发键盘中断。键盘中断导致键盘中断服务例程被执行,最终导致 i8042prt 的 I8042KeyboardInterruptService 被执行。​ 在 I8042KeyboardInte...

2020-04-27 23:07:56 439

原创 《Windows内核安全与驱动编程》-第八章-键盘的过滤学习-day3

键盘的过滤8.5 Hook 分发函数​ 前面讲述了进行键盘的过滤。本节开始更加深入地探讨键盘的过滤与反过滤的对抗。无论是过滤还是反过滤,其原理都是进行过滤。取胜的关键在于: 谁将第一个得到消息。​ 前面学到的键盘过滤方法,是通过在设备栈上绑定一个新的设备实现的。这样就有了一个简单的设想来防止黑客对键盘进行过滤: 检查设备栈,看上面是否有不明的设备。​ 但是一般的黑客软件如果想进行过滤的话,...

2020-04-27 00:21:27 351

原创 《Windows内核安全与驱动编程》-第八章-键盘的过滤学习-day2

文章目录键盘的过滤8.3 键盘过滤的请求处理8.3.1 通常的处理8.3.2 PNP的处理8.3.3 读的处理8.3.4 读完成的处理8.4 从请求中打印出按键信息8.4.2 从 KEYBOARD_INPUT_DATA 中得到的键8.4.3 从MakeCode 到实际字符明日计划键盘的过滤8.3 键盘过滤的请求处理8.3.1 通常的处理​ 最通常的处理就是直接发送到真实设备,跳过虚拟设备的...

2020-04-25 23:03:57 420 1

原创 《Windows内核安全与驱动编程》-第八章-键盘的过滤学习-day1

文章目录键盘的过滤8.1 技术原理8.1.1 预备知识8.1.2 Windows 中从击键到内核8.1.3 键盘硬件原理8.2 键盘过滤的框架8.2.1 找到所有的键盘设备8.2.2 应用设备拓展8.2.3 键盘过滤模块的 DriverEntry8.2.4 键盘过滤模块的动态卸载明日计划键盘的过滤8.1 技术原理8.1.1 预备知识​ 何为符号链接?符号链接其实就是一个“别名”,可以用一个...

2020-04-24 20:39:22 765

原创 《Windows内核安全与驱动编程》-第七章-串口的过滤学习

文章目录串口的过滤7.1 过滤的概念7.1.1 设备绑定的内核API之一7.1.2 设备绑定的内核API之二7.1.3 生成过滤设备并绑定7.1.4 从名字获得设备对象7.1.5 绑定所有串口7.2 获得实际数据7.2.1 请求的区分7.2.2 请求的结局7.2.3 写请求的数据7.3 完整的代码7.3.1 完整的分发函数7.3.2 如何动态卸载明日计划串口的过滤7.1 过滤的概念​ 举...

2020-04-23 16:51:05 651

原创 《Windows内核安全与驱动编程》-第六章学习

文章目录64位和32位的内核开发差异6.1 64位系统新增机制6.1.1 WOW64 子系统6.1.2 PatchGuard 技术6.1.3 64位驱动的编译、安装与运行。6.2 编程差异6.2.1 汇编嵌入变化6.2.2 预处理与条件编译6.2.3 数据结构调整明日计划64位和32位的内核开发差异6.1 64位系统新增机制6.1.1 WOW64 子系统​ WOW64 子系统,是64位 ...

2020-04-22 14:55:22 303

原创 《Windows内核安全与驱动编程》-第五章阻塞、等待与安全设计

应用与内核通信文章目录应用与内核通信5.3 阻塞、等待与安全设计5.3.1 驱动主动通知应用5.3.2 通信接口的测试5.3.3 内核中的缓冲区链表结构5.3.4 输入: 内核中的请求处理中的安全检查5.3.5 输出处理与卸载清理明日计划5.3 阻塞、等待与安全设计5.3.1 驱动主动通知应用之前设计的功能需求中,还缺少一个应用从内核中读取之前保存的字符串。通信是双向的,从应用主动向内核...

2020-04-21 22:47:37 463

原创 《Windows内核安全与驱动编程》-第五章应用方面编程学习.md

应用与内核通信文章目录应用与内核通信5.2 应用方面的编程5.2.1 基本的功能需求5.2.2 在应用程序中打开与关闭设备5.2.3 设备控制请求5.2.4 内核中的对应处理5.2.5 实际演示明日计划5.2 应用方面的编程5.2.1 基本的功能需求​ 本节例子将简单实现一个通信需求: 应用程序可以随时发送字符串给内核驱动,而内核驱动将把这些字符串保存在自己的缓冲区中: 同时应用程序也可以...

2020-04-20 19:20:22 568

原创 《Windows内核安全与驱动编程》-第五章第一节学习

应用与内核通信5.1 内核方面的编程5.1.1 生成控制设备​ 一个驱动要和应用程序通信,要利用设备对象。设备对象和分发函数构成了整个内核体系的基本框架。设备对象可以在内核中暴露出来给应用层,应用层可以像操作文件一样操作它。一般而言,用于和应用程序通信的设备往往用来“控制”这个内核驱动,所以往往称之为“控制设备对象”。​ 生成设备可以使用函数 IoCreateDevice 。这个函数的原型...

2020-04-19 23:18:40 370 1

原创 《Windows内核安全与驱动编程》-第四章学习

文章目录文件、注册表、线程4.1 文件操作4.1.1 使用 OBJECT_ATTRIBUTES4.1.2 打开和关闭文件4.1.3 文件读/写操作4.2 注册表操作4.2.1 注册表键的打开4.2.2 注册表键的读4.2.3 注册表键的写4.3 时间与定时器4.3.1 获取当前“滴答”数4.3.2 获取当前系统时间4.3.3 使用定时器4.4 线程与事件4.4.1 使用系统线程4.4.2 在线程中...

2020-04-19 00:43:39 638

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除