<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>断点社区-专业的老牌游戏安全技术交流社区 - Windows内核与驱动开发</title>
    <link>https://bpsend.net/forum-5-1.html</link>
    <description>Latest 20 threads of Windows内核与驱动开发</description>
    <copyright>Copyright(C) 断点社区-专业的老牌游戏安全技术交流社区</copyright>
    <generator>Discuz! Board by Comsenz Inc.</generator>
    <lastBuildDate>Wed, 28 Oct 2026 09:21:33 +0000</lastBuildDate>
    <ttl>180</ttl>
    <image>
      <url>https://bpsend.net/static/image/common/logo_88_31.gif</url>
      <title>断点社区-专业的老牌游戏安全技术交流社区</title>
      <link>https://bpsend.net/</link>
    </image>
    <item>
      <title>Windows驱动开发中Minifilter文件微过滤的预操作与后操作注意点</title>
      <link>https://bpsend.net/thread-655-1-1.html</link>
      <description><![CDATA[在编写 Minifilter 文件过滤驱动监控或重定向文件时，PreOperation 和 PostOperation 的上下文处理有几个常见注意项：

1. 返回值规范：PreOperation 决定是否需要后操作。如果不需要监控后续完成状态，应返回 FLT_PREOP_SUCCESS_NO_CALLBACK，避免不必要的上下文传递与 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>atang100</author>
      <pubDate>Sat, 03 Oct 2026 23:46:30 +0000</pubDate>
    </item>
    <item>
      <title>Windows内核中进程创建通知回调PsSetCreateProcessNotifyRoutineEx的防御避坑</title>
      <link>https://bpsend.net/thread-652-1-1.html</link>
      <description><![CDATA[在开发安全驱动或反作弊模块时，PsSetCreateProcessNotifyRoutineEx 是监控子进程生成的标准手段。但在实际部署中容易遇到以下细节问题：

1. 驱动签名要求：调用 Ex 版回调必须在链接时指定 /INTEGRITYCHECK，并且二进制文件需要有经过验证的WHQL或交叉签名，否则注册 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>atang100</author>
      <pubDate>Sat, 03 Oct 2026 07:41:02 +0000</pubDate>
    </item>
    <item>
      <title>完成例程跑在 DISPATCH_LEVEL 时，用户缓冲区不能再碰</title>
      <link>https://bpsend.net/thread-649-1-1.html</link>
      <description><![CDATA[写过滤驱动时，最容易在完成例程里直接碰用户缓冲区。PASSIVE_LEVEL 能碰分页内存，派发到 DISPATCH_LEVEL 之后就不行了，蓝屏码经常是 IRQL_NOT_LESS_OR_EQUAL。

几个我现在固定检查的点：

1. 派发例程开头用 KeGetCurrentIrql 记一笔。如果例程可能被完成例程在 DIS ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>atang100</author>
      <pubDate>Fri, 02 Oct 2026 00:24:30 +0000</pubDate>
    </item>
    <item>
      <title>Windows驱动中注册表键值缓存的一致性问题分析</title>
      <link>https://bpsend.net/thread-644-1-1.html</link>
      <description><![CDATA[[md]在Windows驱动开发中，注册表键值的缓存机制经常导致一致性问题：1. 驱动读取注册表后缓存到内存，如果用户态修改了注册表，驱动看到的还是旧值 2. 注册表通知机制（RegNotifyChangeKey）有延迟，不是实时的 3. 多核环境下，不同CPU上的缓存可能不一致 4. 解决方案 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>atang100</author>
      <pubDate>Thu, 01 Oct 2026 06:00:44 +0000</pubDate>
    </item>
    <item>
      <title>WDM驱动中IRQL级别与内存访问的常见陷阱</title>
      <link>https://bpsend.net/thread-641-1-1.html</link>
      <description><![CDATA[[md]写WDM驱动时IRQL管理是最容易出bug的地方，分享几个踩坑经验：1. DISPATCH_LEVEL下不能访问paged memory，用MmProbeAndLockPages锁定 2. DPC中调用KeAcquireSpinLock会死锁，因为DPC本身就在DISPATCH_LEVEL 3. 中断回调里尽量只做标记+唤醒线程，重活留给DPC 4. 用D ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>atang100</author>
      <pubDate>Thu, 01 Oct 2026 05:43:17 +0000</pubDate>
    </item>
    <item>
      <title>内核内存管理与并发同步</title>
      <link>https://bpsend.net/thread-637-1-1.html</link>
      <description><![CDATA[内核内存分为分页内存与非分页内存。分页内存可以被换页到磁盘，只能在 PASSIVE_LEVEL 使用；非分页内存常驻物理内存，DISPATCH_LEVEL 中断上下文必须分配非分页内存。使用ExAllocatePool2分配内核内存，内核开发必须注意内存泄漏，内核内存泄漏无法依靠进程退出自动回 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>156879279</author>
      <pubDate>Sun, 20 Sep 2026 02:56:25 +0000</pubDate>
    </item>
    <item>
      <title>KMDF 驱动入门，HelloWorld 驱动完整流程</title>
      <link>https://bpsend.net/thread-636-1-1.html</link>
      <description><![CDATA[KMDF 驱动入口函数为DriverEntry，相当于驱动的 main 函数，驱动加载时系统调用此函数。DriverEntry主要工作：初始化 WDF 驱动对象，注册设备添加回调EvtDriverDeviceAdd。
EvtDriverDeviceAdd回调负责创建设备对象、创建符号链接，用户态程序可以通过符号链接打开驱动 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>156879279</author>
      <pubDate>Sun, 20 Sep 2026 02:55:54 +0000</pubDate>
    </item>
    <item>
      <title>内核驱动核心概念：IRP、IRQL 与设备堆栈</title>
      <link>https://bpsend.net/thread-635-1-1.html</link>
      <description><![CDATA[IRP（I/O Request Packet，I/O 请求包）是 Windows 内核 I/O 系统的基础单元。用户态调用 ReadFile、WriteFile、DeviceIoControl 时，I/O 管理器会生成 IRP，沿着设备堆栈逐层下发给驱动。每个驱动可以选择处理 IRP，或者向下转发给下层驱动，处理完成后调用完成函数， ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>156879279</author>
      <pubDate>Sun, 20 Sep 2026 02:55:31 +0000</pubDate>
    </item>
    <item>
      <title>Windows 内核与驱动开发概述</title>
      <link>https://bpsend.net/thread-634-1-1.html</link>
      <description><![CDATA[Windows 操作系统采用分层设计，分为用户态（Ring3）与内核态（Ring0）。用户态程序权限受限，无法直接访问硬件、修改系统核心数据；而内核态代码拥有最高权限，可以直接操作物理内存、硬件寄存器，驱动程序就是运行在内核态的核心模块，承担操作系统与硬件设备之间的桥 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>156879279</author>
      <pubDate>Sun, 20 Sep 2026 02:55:07 +0000</pubDate>
    </item>
    <item>
      <title>X86C++反汇编13.函数</title>
      <link>https://bpsend.net/thread-511-1-1.html</link>
      <description><![CDATA[[md]### 函数的调用约定

1. 栈参数传递(传递方向)
2. 返回值
3. 栈平衡(参数平衡 由谁平衡)

函数的调用约定系统说了算

系统的api是标准调用约定,由此编译器也不得不提供这种调用约定

在**非window系统**上,当我们把函数调用约定用 stdcall 时,,并不代表编译过后还是 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Thu, 12 Jun 2025 15:45:22 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-内核中的线程结构体</title>
      <link>https://bpsend.net/thread-510-1-1.html</link>
      <description><![CDATA[[md]0环创建线程，结构为Ethread

3环创建线程，结构为PEB

任何一个线程都必须挂在进程下面

实验
----

随便打开一个程序，我们通过Windbg遍历，取Process结构

![](https://raw.githubusercontent.com/Whitebird0/tuchuang/main/QQ%E6%88%AA%E5%9B%BE20220119201023. ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Thu, 12 Jun 2025 15:44:23 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-CPU控制块KPCR</title>
      <link>https://bpsend.net/thread-509-1-1.html</link>
      <description><![CDATA[[md]介绍
----

![](https://raw.githubusercontent.com/Whitebird0/tuchuang/main/QQ%E6%88%AA%E5%9B%BE20220118225953.png)

表示插了1个CPU，里面有4个物理核心，还有8个逻辑处理器(模拟核心)，也就是常说的四核八线程

每个核都有一套寄存器cr0-cr8,IDT,GDT等，而KP ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Thu, 12 Jun 2025 15:43:50 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-MiProcessLoaderEntry隐藏进程</title>
      <link>https://bpsend.net/thread-492-1-1.html</link>
      <description><![CDATA[[md]MiProcessLoaderEntry在内核文件ntoskrnl.exe中，我们可以通过这个函数API隐藏进程，有两个参数，第一个为PLIST_ENTRY类型的结点，第二个参数为TRUE/FALSE

我们可以通过遍历驱动，找到ntoskrnl.exe，然后通过特征码搜索，找到该函数地址，再通过函数指针调用该函数 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Wed, 21 May 2025 15:48:58 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-断链隐藏其他驱动</title>
      <link>https://bpsend.net/thread-491-1-1.html</link>
      <description><![CDATA[[md]断链隐藏其他驱动需要注意的是要用到之前借壳通信的知识

extern POBJECT_TYPE* IoDriverObjectType;
NTSTATUS
ObReferenceObjectByName(
  __in PUNICODE_STRING ObjectName,
  __in ULONG Attributes,
  __in_opt PACCESS_STATE AccessState,
  __in_opt ACCESS_M ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Wed, 21 May 2025 15:47:43 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-驱动断链隐藏</title>
      <link>https://bpsend.net/thread-486-1-1.html</link>
      <description><![CDATA[[md]补充
----

pDriverObject-&gt;DriverSection实际指向的是下面这个结构，但是微软并没有导出该结构体，需要我们自己定义使用

  typedef struct _LDR_DATA_TABLE_ENTRY
  {
    LIST_ENTRY InLoadOrderLinks;
    LIST_ENTRY InMemoryOrderLinks;
    LIST_ENTRY InIni ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Wed, 07 May 2025 14:23:55 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-驱动遍历</title>
      <link>https://bpsend.net/thread-485-1-1.html</link>
      <description><![CDATA[[md]熟悉_DRIVER_OBJECT结构
----------------------

![](https://raw.githubusercontent.com/Whitebird0/tuchuang/main/QQ%E6%88%AA%E5%9B%BE20220114223024.png)

DriverSection 是驱动的地址，一个指向驱动的指针

DriverInit 存储驱动的名称，一个指向驱动名称的指 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Wed, 07 May 2025 14:23:14 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-保护进程不被访问</title>
      <link>https://bpsend.net/thread-477-1-1.html</link>
      <description><![CDATA[[md]在EPORCESS结构体中，偏移0x26c的地方是一个标志位

![](https://raw.githubusercontent.com/Whitebird0/tuchuang/main/QQ%E6%88%AA%E5%9B%BE20211224162531.png)

在标志位中第12位为进程保护位，当该位为1时，调试器无法附加该进程

没设置保护位:
-------------
 ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Mon, 05 May 2025 03:55:23 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-断链隐藏进程</title>
      <link>https://bpsend.net/thread-476-1-1.html</link>
      <description><![CDATA[[md]今天介绍一种比较简单的隐藏进程的方法，其实只能骗骗3环下的检测

原理
----

我们知道进程在0环中是靠双向链表链接的，我们打印进程的时候靠的是遍历双向链表，如果我们进行断链操作，就可以实现3环下的进程隐藏

代码
----

    #include
    VOID DriverUnload( ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Mon, 05 May 2025 03:54:29 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-驱动遍历进程</title>
      <link>https://bpsend.net/thread-471-1-1.html</link>
      <description><![CDATA[[md]最简单的一种，通过PsGetCurrentProcess获取当前进程，然后通过进程结构体的进程双向链表去遍历进程，但是这里不一定可以得到被隐藏的进程

代码
----

    #include

    VOID DriverUnload(PDRIVER_OBJECT pDriverObject) {

      DbgPrint(\&quot;Unload Driver Succe ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Wed, 30 Apr 2025 15:37:13 +0000</pubDate>
    </item>
    <item>
      <title>驱动开发与系统原理-内核中的进程结构体</title>
      <link>https://bpsend.net/thread-463-1-1.html</link>
      <description><![CDATA[[md]进程其实就是一块内存，被结构体修饰(EPROCESS)

32位的系统内存为4GB

64位的系统内存为256T(48位，并不是64位)

3环空间128T,0环空间128T

KPROCESS

```

        ntdll!_KPROCESS
           +0x000 Header           : _DISPATCHER_HEADER   //事件等待
       ...]]></description>
      <category>Windows内核与驱动开发</category>
      <author>大理寺少卿</author>
      <pubDate>Sat, 05 Apr 2025 14:18:38 +0000</pubDate>
    </item>
  </channel>
</rss>