- 博客(271)
- 资源 (4)
- 收藏
- 关注
原创 IDD与WDDM钩子的应用场景比较研究
间接显示驱动(IDD)是微软在Windows 10及以后版本中引入的图形驱动技术。IDD的核心设计理念是允许开发人员创建虚拟显示设备,而不需要实现完整的物理显示硬件驱动。IDD通过用户模式(User Mode)与内核进行交互,大幅简化了驱动程序的复杂度,提高了开发效率和系统安全性。用户模式驱动:整个驱动程序运行在用户模式中,避免了内核模式的复杂性和危险性虚拟显示支持:能够创建和管理虚拟显示设备,无需物理硬件支持独立于GPU:不受GPU硬件架构的限制,提供跨平台兼容性简化的开发过程。
2026-03-09 15:48:42
353
原创 AI 时代程序员的高阶能力体系:从工程师到领导者的进阶之路
很多程序员被动地接收需求,然后实现。高阶程序员主动理解需求背后的真实问题。为什么这个能力如此重要?需求理解有误需求范围不断扩大需求与实际用户问题不符用户说:我们需要一个报表系统❌ 初级工程师的应对:"好的,我来建一个可以生成各种报表的系统"6 个月后完成,但用户说"不是这样的"✓ 高阶工程师的应对:问题1:用户现在如何获取这些信息?答:Excel 手工汇总,每周花 5 小时问题2:哪些决策依赖这些报表?答:每周管理会议的数据展示问题3:报表需要多实时?
2026-03-07 18:58:16
367
原创 从WDF到Linux内核的深度对话
在现代操作系统的宏观架构中,设备驱动程序扮演着至关重要的角色。它们是硬件与软件世界之间的桥梁,是操作系统能够与纷繁复杂的外部设备进行沟通的根本保证。然而,不同操作系统在设计驱动框架时,往往折射出截然不同的工程哲学与系统架构理念。Windows驱动基础框架(Windows Driver Foundation,简称WDF)与Linux内核驱动模型,正是这一分歧最具代表性的两个范本。
2026-02-28 05:44:32
404
原创 GPU架构学习
图形处理单元(Graphics Processing Unit,GPU)自诞生以来,已从专注于图形渲染的专用硬件演变为支撑现代计算科学、人工智能、科学仿真乃至区块链等多元领域的通用并行计算引擎。其核心架构设计理念——以大规模并行性换取高吞吐量——与传统中央处理单元(CPU)的低延迟串行执行路线形成了鲜明对比。
2026-02-24 10:51:28
756
原创 Windows 性能分析器WPT深度解析
Windows Performance Toolkit(WPT)是微软官方提供的性能分析工具集,隶属于Windows Assessment and Deployment Kit(ADK)。作为系统级性能诊断工具,WPT能够记录系统运行时的详细性能数据,并通过可视化界面进行深入分析,是Windows系统优化的重要工具。开发者可以在自己的应用程序中嵌入自定义事件,使用Trace Logging API向ETW系统发送事件。这样可以在性能分析中看到应用内部的重要事件点。
2026-02-10 14:08:37
523
原创 内核网络组件 AFD 与 Kernel Socket 跨平台架构分析
提供了统一的异步模型通过 IOCP 实现高效的完成通知适合在中等到高并发场景下部署开发相对简洁,但平台依赖性强提供了灵活的多路复用选择从 epoll 到 io_uring 的不断演进在高并发场景下表现优异开源生态丰富,社区支持强大深入理解底层机制对性能优化至关重要选择合适的框架可以屏蔽底层差异平台特定的优化空间巨大未来发展趋势表明两个平台会在性能上继续收敛无论选择哪个平台,理解这些内核级网络组件的工作原理,都是构建高性能网络应用的基础。
2026-02-09 15:26:52
764
原创 Windows socket api 与 LSP 分层服务提供者
分层服务提供者(Layered Service Provider)是Winsock 2.0引入的一个重要扩展机制,它允许开发者在现有的服务提供者之上或之下插入自定义的网络处理层。LSP本质上是一个动态链接库(DLL),它实现了与Winsock兼容的接口,可以拦截、监控、修改或处理网络I/O操作。网络监控与分析:实时监控应用程序的网络流量,进行深度包检测(DPI)和分析性能优化:实现特殊的缓存、压缩、协议优化等机制安全防护:实施防火墙规则、入侵检测、恶意软件防护内容过滤。
2026-02-09 15:20:24
797
原创 Windows文件过滤驱动MiniFilter导致的死锁问题分析
最小化预操作回调的复杂性:预操作回调应仅进行必要的决策,避免复杂的操作在后操作回调中进行复杂操作:利用后操作回调的相对安全性来执行需要与文件系统交互的操作优先考虑异步处理:对于不能立即完成的操作,使用工作队列等异步机制明确定义同步边界:在使用同步机制时,必须明确定义受保护的代码段,确保不会在受保护的代码段中进行会被阻塞的操作注意IRQL级别:始终了解当前代码执行的IRQL级别,选择相应的同步机制。
2026-02-09 15:12:17
743
原创 Windows栈Cookie溢出保护深入讲解
原始函数序言push rbp;插入Cookie代码加载全局Cookie在栈上存储Cookie具体位置通常在保存的RBP之后或缓冲区之前,确保溢出时必然覆盖它。;验证Cookie读取栈上的Cookie与全局Cookie进行XOR检查结果是否为0如果不为0,调用错误处理;正常返回pop rbpret如果验证失败(Cookie被篡改),程序调用// 生成异常或调用异常处理器栈Cookie是现代系统安全的基础保护机制,有效防止了大多数经典栈溢出攻击保护原理简单而有效。
2026-01-30 17:40:22
674
原创 Windows 内核中的栈结构深入解析:用户态栈、内核态栈与WOW栈的比较
栈是一种后进先出(LIFO,Last In First Out)的线性数据结构。在 Windows 系统中,每个线程都有独立的栈空间,用于存储临时数据。栈的增长方向在 x86/x64 架构上是向下的(地址递减),这意味着新数据被压入栈时,栈指针(ESP/RSP)会减小。原子性访问:栈是线程私有的,不需要复杂的同步机制快速分配:栈的内存分配通常只需要修改栈指针自动释放:函数返回时栈自动释放局部变量大小限制:栈空间有限,超出会导致栈溢出。
2026-01-30 17:33:57
701
原创 Windows 用户进程启动链分析:SMSS、CSRSS 和 WINLOGON
SMSS(Session Manager Subsystem)是 Windows 系统中的会话管理器进程,其执行文件位于。作为系统启动过程中的第一个用户模式进程,SMSS 扮演着至关重要的角色。CSRSS(Client/Server Runtime Subsystem)是 Windows 的客户端/服务器运行时子系统进程,其执行文件位于。与 SMSS 不同,CSRSS 运行在内核模式和用户模式之间的特殊模式下。
2026-01-29 14:59:38
1070
原创 Windows 系统中 UserInit 与 Shell 加载机制深度分析
UserInit(用户初始化程序)是一个关键的系统组件,通常位于。它是 Windows 用户会话初始化过程中的第一个主要可执行文件,负责在用户登录后执行一系列必要的初始化操作。初始化用户环境变量执行用户登录脚本启动用户 Shell 程序处理用户配置文件的加载Shell(外壳程序)在 Windows 中通常指的是图形用户界面 (GUI) 的主程序,最常见的是。它提供了用户与操作系统交互的主要界面,包括桌面、任务栏、文件管理器等核心功能。
2026-01-29 14:50:59
696
原创 Windows内核执行体初始化:0阶段与1阶段详解
引导阶段:固件(UEFI/BIOS)初始化硬件并加载引导加载程序加载阶段:bootmgr或winload.exe加载内核和驱动程序内核初始化0阶段:执行体Phase 0初始化内核初始化1阶段:执行体Phase 1初始化会话管理器阶段:初始化用户会话登录阶段:用户认证和会话建立。
2026-01-29 14:46:17
696
原创 深入理解内核调试引擎PCR:原理、应用与实践
PCR(Process Control Register),即进程控制寄存器,是CPU中用于控制进程执行和调试的关键硬件寄存器。在内核调试的语境中,PCR不仅包含基本的进程控制信息,还涵盖了与调试相关的标志位和配置。PCR是连接硬件与软件调试机制的桥梁,允许调试器对被调试进程进行细粒度的控制。通过读写PCR中的各个字段,调试器可以实现单步执行、条件断点、内存观察等高级调试功能。// 简化的硬件断点设置库return -1;// 设置DR0(第一个可用的硬件断点)
2026-01-29 13:38:45
1028
原创 Windows内核栈溢出与“双误“崩溃分析
"双误"(Double Fault)是指在处理一个异常时,CPU又遭遇到了另一个异常。在x86/x64架构中,双误是一种特殊的异常,其异常号为8。第一个异常:栈溢出触发的页面异常(#PF)异常处理程序尝试访问栈来记录错误信息由于栈已溢出,继续访问栈导致第二个异常CPU无法堆栈第二个异常的上下文,生成双误异常// 创建自定义调试器扩展来检查栈// 获取当前线程的栈信息\n");内核栈溢出与双误崩溃是Windows系统中最严重的问题之一。栈的结构和限制。
2026-01-28 14:33:36
904
原创 系统挂死在DPC的深度诊断:Windows内核分析指南
在Windows系统管理和故障排查的工作中,我们经常会遇到一类特殊的系统问题:系统似乎在运行,但完全无响应,键盘鼠标无法操作,网络连接中断,这种现象被称为"系统挂死"。其中一个常见的原因就是系统陷入了DPC(Deferred Procedure Call,延迟过程调用)的死循环。本文将深入探讨这一现象的成因、诊断方法和解决方案。
2026-01-28 14:22:11
1121
原创 设备栈、IRP、PnP与驱动验证器:Windows驱动开发的核心概念 -- 扫盲系列
设备栈是Windows驱动架构中的一个核心概念,它描述了系统中与某个物理设备相关的所有驱动程序的分层结构。每个物理设备在系统中都有一个对应的设备栈,栈中的每一层都代表一个设备对象(Device Object)。物理设备对象(PDO - Physical Device Object):由总线驱动创建,代表实际的硬件设备功能设备对象(FDO - Functional Device Object):由功能驱动创建,处理设备的主要功能过滤设备对象(Filter Device Object)
2026-01-28 14:13:48
664
原创 理解文件过滤驱动与网络栈协同工作
1. 正确的锁使用使用自旋锁保护共享数据结构避免在持有锁时执行阻塞操作使用适当的IRQL级别2. 内存管理及时释放分配的内存在必要时使用内存池限制机制,防止内存耗尽避免在高IRQL下分配分页内存3. 错误处理检查所有API的返回值在出错时进行适当的清理记录错误信息用于调试4. 测试和验证使用Driver Verifier进行驱动验证进行压力测试,模拟高负载场景验证多核系统上的同步正确性。
2026-01-28 14:05:25
1124
原创 通过uac 协议 与 ESP32-S3 通讯控制 麦克风和扬声器 简单介绍
✅ESP32-S3完全可以同时控制麦克风和扬声器功能实现方式难度扬声器输出⭐⭐⭐麦克风输入⭐⭐⭐音量控制USB Audio控制请求 + PWM⭐⭐静音控制停止I2S或发送零数据⭐回声消除软件算法⭐⭐⭐⭐🎧 USB耳机📞 USB会议电话🎤 USB录音设备🔊 USB扬声器+麦克风需要完整的项目代码或者特定功能的详细实现吗?
2026-01-24 09:20:19
363
原创 应用层的文件句柄传递给 驱动层 完成文件写入
/ 设置 IRP 的状态。// 假设传递句柄在缓冲区的开始。// 可以返回写入的字节数。// 完成 IRP 请求。// 完成 IRP 请求。// 初始化文件句柄。sizeof(inputBuffer), // 包括句柄和数据。// 保存打开文件的句柄。
2026-01-13 11:38:50
533
原创 C++ move 的作用详解以及陷阱
std::move的作用:将对象转换为右值引用,允许资源被"移动"而非"拷贝",避免昂贵的深拷贝操作。方面核心要点本质类型转换:左值 → 右值引用目的避免深拷贝,实现资源转移代价几乎零开销(只复制指针)副作用源对象被"掏空"适用大对象、容器、智能指针性能提升10-1000 倍(取决于对象大小)一句话:std::move让 C++ 从"拷贝语义"进化到"移动语义",是现代 C++ 性能优化的基石。有具体的使用场景吗?我可以帮你分析要不要用 move!
2025-12-04 11:59:26
332
原创 如何系统学习网络渗透测试:从入门到精通的完整指南
渗透测试是一种通过模拟攻击者的思维和手段,对目标系统进行安全评估的方法。其目的是在真实攻击发生之前,发现并修复系统中的安全漏洞,从而提升整体安全防护能力。专业的渗透测试工程师不是"黑客",而是帮助组织加固防御的安全专家。深厚的技术功底严格的职业道德持续的学习能力合法合规的操作意识网络渗透测试是一个充满挑战和机遇的领域,需要持续学习和实践。从初学者到专业渗透测试工程师,这是一个需要耐心和毅力的旅程。记住以下核心要点:夯实基础:计算机网络、操作系统、编程能力是根基理论实践并重。
2025-11-27 16:57:43
955
原创 UDT协议中TCP算法模拟机制的详细分析
UDT(UDP-based Data Transfer Protocol)作为一种基于UDP的应用层数据传输协议,在高速广域网环境中展现出优异的性能。本文将深入探讨UDT如何模拟和改进传统TCP算法,包括其拥塞控制机制、流量控制策略、可靠性保障以及与经典TCP算法的异同。通过系统性分析,揭示UDT在保持TCP可靠性特征的同时,如何突破TCP在高带宽延迟积网络中的性能瓶颈。
2025-11-27 16:50:17
335
原创 Ninja 编译系统详细讲解
在软件开发过程中,构建系统是不可或缺的工具。传统的构建工具如 Make 虽然功能强大且应用广泛,但在处理大型项目时存在显著的性能瓶颈。Make 的设计初衷是为人类编写和阅读构建规则,这导致其解析过程复杂、执行效率较低。随着软件项目规模的不断扩大,开发团队对构建速度的要求越来越高,这就催生了 Ninja 这样的高性能构建系统。description = 编译 C 文件 $indeps = gcccommand: 必需,要执行的 shell 命令: 可选,简短的描述信息depfile。
2025-11-27 16:45:28
606
原创 基于 FRP 实现内网穿透的跨网络 HTTP 服务转发方案
✅配置简洁:TCP 模式无需域名,降低部署难度✅透明转发:完整保留 HTTP 请求细节(路径、参数、Headers)✅动态监听:服务端根据客户端配置自动创建监听端口✅跨平台支持:Linux 服务端 + Windows 客户端无缝协作✅断线重连:内置心跳机制,网络波动自动恢复。
2025-11-21 16:38:15
1063
2
原创 libfvad 库详解:原理、使用方法与实践案例
libfvad 是一个用 C 语言编写的独立语音活动检测库,它将 Chromium 的 WebRTC VAD 模块提取出来,提供了简洁的 API 接口。轻量级设计: 代码简洁,依赖少,易于集成高性能: 基于成熟的 WebRTC 算法,经过大量实际场景验证跨平台支持: 可在 Linux、Windows、macOS 等多个平台运行低延迟: 适合实时语音处理应用开源免费: 采用宽松的开源协议优势轻量级,易于集成低延迟,适合实时应用跨平台支持良好基于成熟的 WebRTC 算法局限性。
2025-11-13 15:44:13
521
原创 语音识别库文件 Whisper 支持 CUDA
问题答案默认编译支持 CUDA?❌ 不支持,需要你的版本支持 CUDA?❌ 不支持(日志显示如何获取 CUDA 版本?下载CUDA 版本速度?✅ 5秒音频 → 0.4秒(快 75 倍)是否需要重新编译?❌ 不需要,直接下载预编译版需要我提供详细的下载和配置步骤吗?或者帮你排查为什么 CUDA 没生效?😊。
2025-11-10 11:34:51
1492
原创 linphone 和 freeswitch 抓包方式以及常见故障排查
场景工具命令服务器实时监控sngrep保存分析详细分析WiresharkGUI操作快速诊断sngrep│ 最常用过滤器 ││ sip - 所有SIP ││ rtp - 所有RTP ││ sip.Method == "INVITE" - 呼叫 ││ sip.Status-Code >= 400 - 错误 ││ sdp - 会话描述 ││ ip.addr == X.X.X.X - 特定IP ││ 快捷键 ││ Ctrl+E - 显示过滤器 ││ Ctrl+/ - 应用过滤器 │。
2025-11-07 15:13:14
889
原创 linphone 支持 freeswitch 连接的三种方式
│ 选择传输协议 ││ ││ 局域网测试?││ └─→ UDP (最快) ││ ││ 公网环境?││ └─→ TCP (NAT友好) ││ ││ 需要安全?││ └─→ TLS (加密) ││ ││ 弱网络?││ └─→ TCP (可靠) ││ ││ 生产环境?││ └─→ TLS (必须) ││ │。
2025-11-07 14:41:34
865
原创 Ubuntu 24.04 安装 FreeSWITCH 完整教程
✅ 安装软件包✅ 创建系统用户✅ 修改系统配置文件✅ 启动/停止系统服务✅ 配置防火墙✅ 修改 /etc 和 /var 目录文件。
2025-11-05 11:08:50
1210
1
原创 MVVM 架构 android
MVVM,即 Model-View-ViewModel,是一种将用户界面与业务逻辑进行解耦的软件架构模式。Model:负责数据的获取、存储和处理,通常与数据库、网络接口等数据源进行交互3。View:负责显示界面和与用户交互的所有操作,不包含任何业务逻辑3。ViewModel:作为中介层,其主要作用是将 Model 层的处理结果暴露给 View,同时还负责接收来自 View 的用户操作,并将其转化为对 Model 的指令3。可以将 UI 逻辑与业务逻辑分离,使代码结构更清晰。
2025-10-20 16:55:12
668
原创 钱学森系统工程理论的深度解析
钱学森将系统工程定义为"组织管理系统的规划、研究、设计、制造、试验和使用的科学方法"。这一定义突出了系统工程的几个重要特征:首先是整体性特征。系统工程强调从整体出发,统筹考虑系统的各个组成部分及其相互关系,追求系统整体效益的最大化。这与传统的分析方法有本质区别,不是简单的部分相加,而是通过系统的有机组合实现整体功能的涌现。其次是综合性特征。系统工程需要综合运用多学科知识,包括自然科学、技术科学、社会科学等各个领域的理论和方法,形成跨学科的综合性解决方案。再次是实践性特征。
2025-09-19 14:18:44
1417
原创 人工智能与机器人技术在系统架构设计中的理论研究与实践应用
随着人工智能(Artificial Intelligence, AI)技术的飞速发展和机器人技术的日臻成熟,二者在系统架构设计中的融合应用已成为当代信息技术领域的重要研究方向。本文深入探讨了人工智能与机器人技术在系统架构设计中的核心理论基础、关键技术要素、设计原则与方法论,并通过典型案例分析,系统阐述了智能机器人系统架构的设计策略、实现路径以及面临的技术挑战。
2025-08-26 10:28:57
730
原创 云原生技术总结
云原生技术是指专门为云计算环境设计和构建的应用程序开发方法论和技术栈。根据云原生计算基金会(Cloud Native Computing Foundation, CNCF)的官方定义,云原生技术使组织能够在现代动态环境(如公有云、私有云和混合云)中构建和运行可扩展的应用程序。这些技术包括容器、服务网格、微服务、不可变基础设施和声明式API等,它们能够构建容错性强、易管理且可观察的松散耦合系统。
2025-08-26 10:18:10
628
KsBinSword 黑客技术学习 ddk NT式驱动入门 SSDT rootkit
2013-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅