
windows驱动内核开发
文章平均质量分 81
windows 驱动基础学习 遇到的坑 wdf wdm inf
爱学习的大牛123
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RNDIS USB模拟网卡实现技术研究
RNDIS(Remote Network Driver Interface Specification)是微软制定的远程网络驱动接口规范,用于在USB等传输介质上实现以太网功能。该协议通过USB通信信道传输网络数据包,使USB设备能够模拟标准网络接口卡的功能。RNDIS USB模拟网卡技术广泛应用于嵌入式设备网络连接、物联网数据传输、调试接口实现等场景。其主要优势在于无需额外的网络硬件支持,仅通过USB接口即可实现网络通信功能,具有成本低、集成度高的特点。原创 2025-07-29 09:16:31 · 843 阅读 · 0 评论 -
RNDIS USB模拟网卡技术详解与实现方案(二)
RNDIS(Remote Network Driver Interface Specification)是由Microsoft制定的一种网络设备接口规范,旨在通过各种传输介质(如USB、1394等)实现网络设备的抽象化。该协议最初设计用于简化网络设备驱动程序的开发,使得主机系统能够通过标准的网络接口与远程设备进行通信。协议透明性:RNDIS在传输层之上提供统一的网络接口抽象,使得上层应用无需关心底层传输介质的具体实现。原创 2025-07-29 09:25:44 · 872 阅读 · 0 评论 -
Windows 驱动程序中不同函数运行在不同的中断请求级别 (IRQL)详细的分类
这些知识对于编写稳定的 Windows 驱动程序非常重要!原创 2025-07-10 13:35:25 · 142 阅读 · 0 评论 -
windows内核句柄判断有效
/ ZwQueryObject 函数声明(如果头文件中没有)// 相关结构体定义。原创 2025-06-26 17:39:50 · 341 阅读 · 0 评论 -
windows内核 nt路径转化dos路径
/ "C:" + 剩余路径。// 组合最终路径: "\\?\\" + 原始DOS路径。// 构建原始DOS路径: "C:" + 剩余路径。// 现在在前面加上 "\\?// 先创建原始的DOS路径(和之前一样)// 检查NT路径是否以这个符号链接目标开始。// 构建符号链接路径 "\?// 找到匹配的驱动器。// 释放临时缓冲区。原创 2025-06-26 12:57:56 · 380 阅读 · 0 评论 -
文件过滤能不能跳过io执行直接 postread
/ 驱动注册回调 CONST FLT_OPERATION_REGISTRATION Callbacks[] = { { IRP_MJ_READ, 0, PreRead_Normal, // 这里可以切换不同的PreRead函数来测试 PostRead_Handler }, { IRP_MJ_OPERATION_END } };// 场景1: 正常流程 - PreRead → I/O → PostRead FLT_PREOP_CALLBACK_STATUS PreRead_Normal(原创 2025-06-25 11:15:10 · 897 阅读 · 0 评论 -
windows内核层 简单文件映射
/ 100纳秒单位。if (fileData[i] >= 32 && fileData[i] <= 126) { // 可打印字符。if (buffer[i] >= 32 && buffer[i] <= 126) { // 可打印字符。if ((i & 0xFFFF) == 0) { // 每65536字节。// 映射创建时间(CPU周期)原创 2025-06-25 11:00:52 · 367 阅读 · 0 评论 -
Windows内核中根据PID查找兄弟进程和父进程
在Windows内核驱动开发中,根据进程ID(PID)查找相关进程(如兄弟进程和父进程)是一个常见需求。这涉及到对Windows内核进程管理机制的理解和使用。下面我将详细介绍实现这一功能的方法。原创 2025-03-26 17:02:14 · 543 阅读 · 1 评论 -
除了sandboxie 还有哪些内核开源项目值得学习
Process Hacker是一个功能强大的开源系统工具,专注于系统资源监控、软件调试和恶意软件检测。它已更名为System Informer,但保持同样的核心功能。原创 2025-03-26 11:46:28 · 915 阅读 · 0 评论 -
windows 内核层简单 map 实现与测试
/ 测试5:多元素随机插入和删除。// 测试1:单个元素插入和查找。// 测试2:重复插入同一个键。// 测试4:删除不存在的元素。// 测试3:删除存在的元素。// 检查是否已存在相同键。// 释放桶数组和映射结构。// 设置比较和哈希函数。// 遍历对应桶的链表。// 遍历对应桶的链表。// 释放每个桶的链表。// 头插法处理冲突。// 验证元素已删除。原创 2025-03-06 12:55:03 · 755 阅读 · 0 评论 -
Sandboxie 如何 规避 PatchGuard
Sandboxie 使用了内核 Hook 技术,但为了规避 Windows 的 **PatchGuard**(内核完整性保护机制),它采取了一系列巧妙的策略。- **影子表(Shadow Table)**:创建 SSDT 的副本,并重定向系统调用到影子表。- **伪造 SSDT 校验和**:修改 SSDT 的校验和以匹配 Hook 后的状态。- **无法完全规避**:PatchGuard 的检测机制非常复杂,完全规避几乎不可能。- **随机化 Hook 时间**:避免 PatchGuard 的定期检测。原创 2025-02-24 13:39:58 · 473 阅读 · 0 评论 -
Sandboxie 注入流程的一个整体梳理
windows sandboxie原创 2025-02-20 14:36:24 · 985 阅读 · 0 评论 -
Windows内核注册表操作拦截与重定向机制研究
本文详细分析了Windows注册表操作的内核级拦截机制和重定向技术,从基本原理到具体实现进行了全面阐述。重点介绍了重定向机制的设计与实现,包括分层重定向、写时复制、缓存优化等关键技术。**摘要**:本文深入研究了Windows操作系统中注册表操作的内核级拦截机制及重定向技术,详细分析了其实现原理、关键技术和应用场景。通过对注册表过滤驱动架构的剖析,阐述了回调注册、拦截流程、重定向实现和安全防护等核心问题。// 重定向目标路径。LAYER_SYSTEM, // 系统层。// 检查是否需要重定向。原创 2025-01-23 09:46:03 · 994 阅读 · 0 评论 -
win内核内部直接irp读取文件写入文件
内核直接读文件原创 2025-01-19 06:52:24 · 976 阅读 · 0 评论 -
Windows 内核驱动中使用字符串转换的典型场景和方法
wcslen(UnicodeString) * sizeof(WCHAR) // 源字符串长度。AnsiBufferLength, // 目标缓冲区大小。sizeof(ansiBuffer), // 输出缓冲区大小。requiredSize, // 目标缓冲区大小。AnsiString, // 目标缓冲区。ansiBuffer, // 输出缓冲区。ansiBuffer, // 目标缓冲区。原创 2025-01-07 22:08:19 · 650 阅读 · 0 评论 -
ReactOS代码模块对比Windows NT内核具体功能剖析
windows内核学习 ReactOS原创 2024-12-11 14:11:36 · 1092 阅读 · 0 评论 -
内核流对象(Kernel Streaming Objects)
内核流对象原创 2024-12-06 17:45:03 · 342 阅读 · 0 评论 -
电脑是否被远程控制如何判断
if (pEvent->EventID == 4624 || // 登录成功。pEvent->EventID == 4625) { // 登录失败。// CPU使用率异常高可能表示远程控制。// 如果多个指标都显示可疑,则很可能被远程控制。// 检查常见远程控制软件进程。// 检查Windows防火墙日志。// 检查远程控制软件的注册表项。// 获取网络接口信息。// 首先获取需要的缓冲区大小。// 检查远程登录事件。// 常见远程控制端口。// 综合多个检测结果。// 检查异常资源使用。原创 2024-12-06 19:02:28 · 1985 阅读 · 0 评论 -
windbg性能问题调试详解
windbg性能调试原创 2024-12-01 08:37:35 · 580 阅读 · 0 评论 -
windbg kd 内核调试状态下调试用户某个进程
process 0 0 notepad.exe # 找进程。kd> g # 继续执行。.process /i /p # 通知调试器切换进程。process 0 0 notepad.exe # 查找记事本进程。.process /r /p # 刷新地址空间。process 0 0 # 简单列表。process 0 7 # 详细信息。原创 2024-12-01 08:32:45 · 668 阅读 · 0 评论 -
windbg使用定位内核内存泄露
零 打开驱动测试测试工具零 打开驱动测试测试工具。原创 2024-11-29 12:58:46 · 840 阅读 · 0 评论 -
minifilter 防打印
miifilter 防打印原创 2024-11-27 09:46:56 · 757 阅读 · 0 评论 -
Windows 驱动开发中 ExAcquireResourceExclusiveLite 和其他锁的区别:
1. ExAcquireResourceExclusiveLite(独占资源锁)特点:- 是一种读写锁(ERESOURCE)的独占模式- 同一时间只允许一个线程获得锁- 可以递归获取(同一线程可以多次获取)- 支持等待和超时机制- 适用于内核模式代码- 可以与共享锁(ExAcquireResourceSharedLite)配合使用2. ExAcquireResourceSharedLite(共享资源锁)特点:- 同一时间允许多个线程以共享方式访问资源。原创 2024-11-19 10:32:04 · 750 阅读 · 0 评论 -
通过vmware虚拟机安装和调试编译好的 ReactOS
如果你需要特定的调试场景或遇到具体问题,请告诉我,我会提供更详细的指导。- 使用 `bp module!function` 设置断点。analyze -v` 分析崩溃。- 使用 `Ctrl+Break` 中断执行。:: 创建 VMware 虚拟机配置文件。- 使用 `bl` 查看所有断点。- 使用 `k` 查看调用栈。- 使用 `g` 继续执行。在 ReactOS 中。:: 检查 VMware 安装。:: 更新 CD-ROM 配置。在 WinDbg 中。:: 确保调试管道不存在。原创 2024-11-10 15:32:30 · 1028 阅读 · 0 评论 -
通过VirtualBox虚拟机安装和调试编译好的 ReactOS
Visual Studio 2019 (用于源码级调试)1. 设置调试环境:`debug_environment.bat`- `bp module!function` - 设置断点。analyze -v` - 详细分析当前异常。2. 启动调试会话:`start_debug.bat`- `.reload` - 重新加载符号。- `dt type` - 显示类型信息。- `lm` - 列出加载的模块。- `bl` - 列出所有断点。:: 挂载 ReactOS ISO。原创 2024-11-10 15:18:40 · 1089 阅读 · 0 评论 -
reactos-master cmake编译-学习win内核必备
reactos 编译原创 2024-11-10 15:13:29 · 596 阅读 · 0 评论 -
IWbemObjectSink 异步接口使用
/ IWbemObjectSink 接口的基本实现框架。// ... 初始化 WMI 服务 ...// 处理设备变化事件。// ... 设置事件通知 ...// ... 设置事件通知 ...// 处理具体的设备事件。// IUnknown 方法。- 实时监控:可以及时获取系统变化。// 必须实现的主要方法。// 创建 WMI 连接。// WQL查询服务变化。// 监控USB设备插拔。- 低资源消耗:比轮询方式更效率。- 灵活性:可以监控多种系统事件。// 核心事件处理方法。// 创建事件接收器。原创 2024-11-06 14:19:36 · 703 阅读 · 0 评论 -
文件过滤-文件打开关闭多次处理方案
c++ windows内核驱动原创 2024-10-31 09:58:26 · 540 阅读 · 0 评论 -
Windows 内核层内存泄漏查看工具
检测和分析 Windows 内核层的内存泄漏需要专业的工具和深入的系统知识。在进行内核级调试时,建议在专门的测试环境中进行,以避免影响生产系统的稳定性。PoolMon 是 Windows Driver Kit (WDK) 中包含的一个命令行工具,用于监视内核池内存的使用情况。虽然 Process Explorer 主要用于用户模式进程,但它也可以提供一些内核内存使用的信息。- **注意**:使用 Driver Verifier 可能会影响系统性能,建议在测试环境中使用。原创 2024-10-19 09:57:43 · 1197 阅读 · 0 评论 -
内核流句柄上下文与配置和内存映射类比理解
内核上下文是操作系统底层的一个重要组件,直接影响系统的行为和性能,而配置文件则是应用程序层面的一个工具,主要用于存储和管理应用程序的设置。内核流句柄上下文主要用于内核级别的文件系统操作,为驱动程序提供了一种高效的方式来存储和访问与特定文件流相关的自定义数据。相比之下,内存映射是一种更通用的机制,它将文件或设备内存映射到进程的地址空间,使得应用程序可以像访问内存一样访问这些资源。虽然这两种机制在本质上不同,但它们都反映了操作系统设计中的一个共同主题:通过提供高效的数据访问机制来优化系统性能。原创 2024-10-19 15:25:28 · 962 阅读 · 1 评论 -
FltGetStreamContext 作用
FltGetStreamContext原创 2024-10-14 17:00:51 · 402 阅读 · 0 评论 -
PEB BeingDebugged 字段解析
BeingDebugged` 是 Windows 操作系统中 Process Environment Block (PEB) 结构的一个字段。它是一个单字节的布尔值,用于指示当前进程是否正在被调试。在 32 位和 64 位系统中,它的位置是相同的。- 高级反调试技术通常结合多种方法,包括检查 `BeingDebugged`、时间检查、异常处理等。- 仅依赖 `BeingDebugged` 进行反调试是不够的,因为它很容易被绕过。- 合法软件可能使用它来调整行为或提供额外的调试信息。原创 2024-10-13 21:44:21 · 357 阅读 · 0 评论 -
WinDbg 查看 ZwXxx 系统服务重定向
系统服务重定向 windows内核 查看原创 2024-09-19 17:31:40 · 356 阅读 · 0 评论 -
ERESOURCE在windows内核 作用
1. **防止资源竞争:** 当多个线程需要同时访问共享资源(例如数据结构、硬件设备等)时,ERESOURCE 可以确保同一时间只有一个线程可以访问该资源,从而避免数据损坏或其他同步问题。2. **支持多处理器同步:** ERESOURCE 可以在多处理器系统中有效地工作,确保所有处理器上的线程都能正确地同步对共享资源的访问。- **共享访问:** 多个线程可以请求共享访问资源,只要它们不修改资源即可。- **独占访问:** 线程可以请求独占访问资源,阻止其他任何线程访问。原创 2024-09-14 10:01:20 · 449 阅读 · 0 评论 -
Windows VT(Virtual Technology)
windows内核 VT原创 2024-08-22 14:38:26 · 1669 阅读 · 0 评论 -
Windows过滤平台(WFP)
wfp windows 驱动原创 2024-08-16 13:36:25 · 2705 阅读 · 0 评论 -
windows ndis 详解
windows ndis 网络驱动原创 2024-08-15 09:29:04 · 1791 阅读 · 0 评论 -
windows 内核驱动通过哪些方式直接访问硬件
windows 内核 硬件访问原创 2024-08-14 19:01:19 · 1642 阅读 · 0 评论 -
windows内核态恶意软件分析
内核态恶意软件分析 windows原创 2024-08-11 21:23:47 · 1166 阅读 · 0 评论 -
windows内核开发防崩溃和容错技术
windows 驱动 防崩溃 容错技术原创 2024-08-11 16:24:27 · 1096 阅读 · 0 评论