【内核与用户层同步】内核对象安全描述符降权

RAG提示编排层归零:Claude 3.5原生能力如何重构AI应用架构 RAG(检索增强生成)是当前企业级大模型应用的核心范式,其传统架构依赖外部提示编排层(Prompt Orchestrator)实现指令调度、上下文裁剪与格式校验。随着Claude 3.5等新一代模型原生支持结构化系统指令、JSON Schema响应格式及内生注意力约束,该中间层正从工程实践中加速消失——运维成本指数坍塌,端到端延迟下降75%以上。这一演进本质是AI系统抽象层级的下移:将语义理解、格式合规、不确定性量化等能力从应用层‘外挂逻辑’,沉淀为模型权重中的‘隐式状态机’。它不否定RAG价值,而是推动其 阅读详情

DriverEntry 创建一个命名的内核通知事件对象

	HANDLE g_hEvent = NULL;
	PKEVENT g_kEvent = NULL;
 	__debugbreak();
    
    UNICODE_STRING usEventName = RTL_CONSTANT_STRING(L"\\BaseNamedObjects\\test_event");
    g_kEvent = IoCreateNotificationEvent(&usEventName, &g_hEvent);
    KeClearEvent(g_kEvent);
    
	// 修改内核对象安全描述符
	SetEventACL(g_hEvent);

    DbgPrint("g_kEvent=%p g_hEvent=%p Name=%wZ \n",g_kEvent, g_hEvent, &usEventName);

用户层打开该对象,并创建线程,等待事件通知

HANDLE g_UserEvent = NULL;

DWORD WINAPI MyThreadFunction( LPVOID lpParam ) 
{ 
    if(WAIT_OBJECT_0 == WaitForSingleObject(g_UserEvent, INFINITE))
    {
        printf("User Mode Thread Signaled.\n");

    }

    printf("Loop Thread Exited.\n");

    return 0; 
} 


int main()
{

	do 
    {
          g_UserEvent =  OpenEventA(SYNCHRONIZE, NULL, "Global\\test_event");
          
    } while (!g_UserEvent);

    HANDLE hThread = CreateThread(0, NULL, MyThreadFunction, NULL, 0, NULL);

    printf("UserMode Loop Thread Wait for Kernel Event Siginal. hThread=%p g_UserEvent=%p\n",hThread, g_UserEvent);

}

此时用户层程序如果是普通用户权限,则打开Event失败,因为内核创建的对象,普通用户层是没有权限打开的

使用下面函数修改内核Event的安全描述符以后,加入SeAliasUsersSid,给普通用户也赋予权限,这样就可以打开内核的Event了,

NTSTATUS SetEventACL(HANDLE hObj)
{
    ULONG uACLSize = 0;
    PACL  pACL     = NULL;
    SECURITY_DESCRIPTOR SecurityDesc = {0};
    NTSTATUS Status = STATUS_UNSUCCESSFUL;

    do 
    {
        //
        // Calculate how big our ACL needs to be support one ACE 
        // (in this case we'll use a predefined Se Export for local system as the SID)
        //

        uACLSize = sizeof(ACL);
        uACLSize += RtlLengthSid(SeExports->SeLocalSystemSid);
        uACLSize += RtlLengthSid(SeExports->SeAliasAdminsSid);
        uACLSize += RtlLengthSid(SeExports->SeAliasUsersSid);
        
        //
        // Room for 3 ACEs (one for each SID above); note we don't
        // include the end of the structure as we've accounted for that length in the SID lengths already.
        //

        uACLSize += 3 * FIELD_OFFSET(ACCESS_ALLOWED_ACE, SidStart);
        
        pACL = (PACL)ExAllocatePool(PagedPool, uACLSize);
        if(pACL == NULL)
        {
            Status = STATUS_INSUFFICIENT_RESOURCES;
            break;
        }
        
        Status = RtlCreateAcl(pACL, uACLSize, ACL_REVISION);
        if(!NT_SUCCESS(Status))
        {
            break;
        }

        Status = RtlAddAccessAllowedAce(pACL, ACL_REVISION, GENERIC_ALL, SeExports->SeLocalSystemSid);
        if(!NT_SUCCESS(Status))
        {
            break;
        }

        Status = RtlAddAccessAllowedAce(pACL, ACL_REVISION, GENERIC_ALL, SeExports->SeAliasAdminsSid);
        if(!NT_SUCCESS(Status))
        {
            break;
        }

        Status = RtlAddAccessAllowedAce(pACL, ACL_REVISION, GENERIC_ALL, SeExports->SeAliasUsersSid);
        if(!NT_SUCCESS(Status))
        {
            break;
        }
        
        //
        // Create a SecurityDescriptor
        //

        Status = RtlCreateSecurityDescriptor(&SecurityDesc, SECURITY_DESCRIPTOR_REVISION);
        if(!NT_SUCCESS(Status))
        {
            break;
        }

        //
        // Associate the above pACL with the security descriptor
        //
        
        Status = RtlSetDaclSecurityDescriptor(&SecurityDesc, TRUE, pACL, FALSE);
        if(!NT_SUCCESS(Status))
        {
            break;
        }

        //
        // Set security on the object
        //

        Status = ZwSetSecurityObject(hObj, DACL_SECURITY_INFORMATION, &SecurityDesc);
        if(!NT_SUCCESS(Status))
        {
            break;
        }


    } while (false);

    if(pACL)
    {
        ExFreePool(pACL);
        pACL = NULL;
    }

    return Status;

}
CentOS 8 用户管理原理与实战:useradd/userdel 深度解析 Linux 用户管理是系统运维的基础能力,其核心在于理解用户作为‘运行时会话实体’而非静态文件对象的本质。在现代 Linux 发行版中,用户生命周期已深度耦合 PAM 认证模块、systemd 会话管理及 SELinux 安全上下文,形成从账户创建、登录授权到资源清理的完整闭环。这一机制显著提升了安全性与可审计性,但也导致传统 CentOS 7 的 useradd/userdel 操作在 CentOS 8 中频繁出现认证失败、命令卡顿或权限异常等问题。掌握其底层链路——如 loginctl 会话注册、cgr 阅读详情

相关推荐

Python文件存在性检查的7层陷阱与生产级解决方案

文件存在性检查是操作系统与Python交互的基础操作,其本质涉及stat系统调用、inode元数据读取及POSIX文件语义。传统os.path.exists()仅返回瞬时快照,无法规避竞态条件、权限误判和符号链接歧义等底层风险;而pathlib.Path.is_file()通过封装st_mode解析提供更安全的类型判断。该技术具有显著工程价值:提升IO操作原子性、增强跨平台路径鲁棒性、支撑金融/医疗等高可靠性场景。典型应用场景包括配置加载预检、日志目录初始化、容器化环境路径适配及多进程文件协调。本文深入剖析

weixin_34356310的博客 450

windows之 访问控制模型

当一个线程使用Open*打开一个内核对象时,会发生什么? 有两种可能: 1. 打开成功,拿到句柄 2. 打开失败 这不是废话么?!为啥打开失败呢?有两种可能: 1. 当前线程不具有指定的特权 2.  权限不足(由dwDesiredAccess参数指定权限) 这个时候就引入了今天的主题:令牌(包含特权列表)和安全描述符(描述用户权限)。 Token token是什么?对

点点灵犀 2433

系统提示词四段式设计:Agent生产级落地的内核规范

系统提示词不是简单的开场白或礼貌用语,而是大语言模型作为AI Agent在生产环境中运行的启动配置、权限沙箱与行为契约。其核心原理在于将非确定性模型推理,约束为可验证、可审计、可容错的状态机执行流程。技术价值体现在保障Agent在并发请求、脏数据、网络异常和恶意注入下的行为一致性与安全性。典型应用场景包括供应链预警、金融风控、工业设备维护等需嵌入真实业务闭环的领域。本文聚焦‘身份锚定-能力边界-决策协议-容错契约’四段式结构,结合RefleXion动态纠错与Muzzle数据净化机制,构建抗压型系统提示词工程

weixin_33871366的博客 410

Windows_10_System_Programming_2,Objects and Handles

可以通过复制句柄(duplicating the handle)来实现这些复制操作(these copy operations)(见本章后面的 “共享内核对象”),但这是一个非平凡(非常重要)的操作,最好在隐式复制场景中避免。内核对象是引用计数的。句柄复制没有固有的限制(除了安全性)-它几乎可以在任何内核对象上工作,不管是有名字的还是没有名字的,而且它在任何时间点上都可以工作(在第3章中,我们将看到句柄继承仅在进程创建子进程时可用)。如果是,那么它就不是一个新的对象,而是现有对象的另一个句柄。

zhaopeng01zp的博客 782

Mythos推理引擎:长程因果与隐含前提的可验证AI范式

大语言模型的推理能力正从通用生成转向结构化、可验证的专项范式。长程因果推理和隐含前提识别作为高价值推理任务,其核心挑战在于逻辑保真度低、中间过程不可审计、跨源证据难对齐。Mythos代表了一种新型AI交付模式——通过约束性强化学习与符号化引导,在因果链建模、多跳前提抽取、跨文档逻辑缝合三方面实现质变,并以Schema预处理、推理模式锁定、水印化输出构建可验证信任链。该范式已在金融风控等强合规场景落地,显著降低误报率并提升决策可解释性,标志着AI服务正从‘模型即服务’迈向‘推理即契约’。

weixin_34253126的博客 331

Comodo杀毒软件逆向工程:从架构拆解到核心防护机制分析

逆向工程是安全领域理解软件内部工作原理的关键技术,它通过分析程序的二进制代码、数据结构和执行流程,揭示其设计逻辑与实现机制。这项技术的核心原理在于将编译后的机器代码还原为可理解的逻辑,通常借助反汇编器、调试器和行为监控工具来完成。在安全研究领域,逆向工程具有重要价值,它不仅能帮助研究人员发现软件漏洞、分析恶意软件行为,还能深入理解商业安全产品的防护体系。其典型应用场景包括恶意软件分析、安全产品评估、漏洞挖掘和兼容性开发。本文聚焦于对Comodo杀毒软件的逆向工程实践,详细拆解其用户态与内核态协同的架构设计,

weixin_33970449的博客 320

VB读写进程句柄-共享内存-内存映射CreateFileMapping

共享内存 其实就是 一个 句柄 可以用工具查看进程句柄 中就可以发现,类似 互斥体一样的东西 然后共享内存 ,创建的是一个句柄名称 "Global\{FD921876-60EB-4799-A084-872BEDB29151}") 不过这个东西在 用工具查看进程句柄的时候 发现 并没有 Global\ 这个字符串名,而是 句柄类型 句柄名称 Section \BaseNamedObjects\{FD921876-60EB-4799-A084-872BEDB29151}...

追逐光芒,追随内心 1404

VSCode+Copilot+Claude构建高可靠AI编程工作流

AI编程不是简单调用代码补全工具,而是将大语言模型深度融入开发闭环的工程实践。其核心在于理解模型能力边界(如Copilot的上下文限制与Claude的长程逻辑一致性)、掌握IDE底层机制(如VSCode的本地代理协议与调试集成),并构建可审计、可扩展、防泄漏的工作流。技术价值体现在单位时间有效产出提升、文档查阅耗时压缩至秒级、复杂Bug定位效率倍增,广泛应用于前端工程化、微服务架构设计、金融/医疗等强合规场景。本文聚焦VSCode作为AI中枢的实操体系,详解Copilot配置优化、Claude OAI兼容接

aiqixiao2017的博客 424

Windows线程和消息队列

一、桌面窗口 启动windows系统,登录用户拥有一个会话(Sessions),一个会话拥有一个私有对象命名空间(\BaseNamedObjects),也拥有多个窗口站(WindowsStation),其中只有一个窗口站是交互式的,其他窗口站是非交互的。这个交互式窗口站至少拥有三个桌面:默认桌面、登录桌面、屏保桌面。默认桌面是系统定义的桌口,这个窗口绘制屏幕的背景,作为windows应用程序显示窗口的基础。所有window应用程序窗口都与该默认桌面窗口绑定。应用程序窗口都是用来显示输出和从用户得...

ypy_datou的专栏 537

美团前端反爬三重关卡与Selenium人类化改造实战

现代Web前端反爬已从简单IP封禁升级为环境指纹识别、用户行为图谱分析和动态资源隔离三位一体的深度防御体系。其核心原理在于通过浏览器运行时特征、毫秒级操作时序及JS上下文强绑定Token,构建不可伪造的‘真实用户’信任模型。这种机制不仅提升了数据安全水位,更倒逼自动化工具必须具备人类级交互能力——包括指纹伪造、贝塞尔滚动、高斯点击偏移与上下文Token提取等关键技术。典型应用场景涵盖外卖平台数据采集、竞品价格监控及灰度发布异常行为归因分析。本文聚焦美团案例,系统拆解Selenium如何突破前端反爬的工程化实

weixin_33859135的博客 754

基于Visual C#的Windows服务安装与文件监视实战详解

系统日志虽方便,但不适合高频日志或结构化输出。为此可引入文本日志。如前所述,必须标记,以便 InstallUtil 工具识别并执行安装逻辑。

weixin_29215509的博客 1082

[笔记]深入解析Windows操作系统《三》系统机制

文章目录前言3.1 陷阱分发3.2 对象管理器3.3 同步3.4系统辅助线程3.5 Windows全局标志3.6 高级本地过程调用3.7 内核事件跟踪3.8 WOW643.9 用户模式调试3.10 映像加载器3.11 超级监督者Hyper-V3.12 内核十五管理器3.13 热补丁支持3.14 内核补丁保护3.15 代码完整性总结 前言 3.1 陷阱分发 3.2 对象管理器 3.3 同步 3.4系统辅助线程 3.5 Windows全局标志 3.6 高级本地过程调用 3.7 内核事件跟踪 3.8 WOW64

二次元怪兽的博客 3962

ERA5数据批量下载

ERA5再分析数据的IDM接管下载

qq_38734327的博客 3035

Dirty Pipe漏洞深度解析:从SUID提权到内核管道与页面缓存机制

Linux内核中的管道(pipe)与页面缓存(page cache)机制是提升I/O性能的核心组件。管道实现了进程间通信的高效数据流,而页面缓存则将频繁访问的磁盘数据缓存在内存中,以减少磁盘读写次数。当管道与页面缓存交互时,若状态管理存在逻辑缺陷,便可能引发严重的安全漏洞。Dirty Pipe(CVE-2022-0847)正是这样一个经典案例,它源于管道缓冲区中一个未正确初始化的`PIPE_BUF_FLAG_CAN_MERGE`标志位。该漏洞允许低权限进程绕过文件系统的写权限检查,直接修改只读文件的缓存页,

weixin_30410119的博客 387

Matlab 普通kriging(克里金)插值

Matlab 普通kriging(克里金)插值

dayuhaitang1的博客 4571

apollo自动驾驶进阶学习之:如何实现施工路段限速绕行及其参数调试

首先需要理解Planning模块是基于Scenario、Stage、Task这样的层次来进行的,即场景->步骤->具体的决策方法。Apollo可以应对自动驾驶所面临的不同道路场景,都是通过Scenario统一注册与管理。Scenario通过一个有限状态机来判断选择当前行车场景,每个Scenario下又有多个Stage,指当前场景下需要执行的粗略步骤。.........

qq_41593516的博客 6598

Ubuntu 20.04 Redis安全加固实战:从默认安装到生产级防护

Redis 是一种高性能内存键值数据库,广泛用于缓存、会话存储与消息队列等场景。其核心原理基于单线程事件驱动模型与内存直读写机制,具备极低延迟与高吞吐特性。然而,若缺乏基础安全配置,极易引发未授权访问、数据泄露甚至远程代码执行等严重风险。技术价值体现在:通过密码认证、网络隔离、TLS加密与ACL权限控制四层防御,可显著提升服务抗攻击能力。典型应用场景包括电商中台缓存加固、微服务间安全会话共享及金融级敏感数据临时存储。本文聚焦 Ubuntu 20.04 LTS 环境下,基于官方 APT 包的 Redis 安装

weixin_33733810的博客 350

【深度学习新浪潮】为什么OpenClaw这么吃token?

OpenClaw 高 Token 消耗的核心是 Agent 多轮思考、工具调用上下文累积,以及平台内置的模板/多模型协同开销;PD 分离在 OpenClaw 中可针对性解决长上下文 Prefill 阻塞、KV Cache 复用低效问题,是提升其推理效率的核心优化手段,主要落地在长上下文处理与生成阶段解耦、KV Cache 集中管理、动态资源调度三个方向。

专注:太空算力、AI infra、异构调度、大模型成本工程 421

PHP = CPU 环级?

环级名称权限居住者特点Ring 0内核态 (Kernel Mode)最高特权OS 内核、驱动、文件系统可执行任何指令,访问所有内存和硬件。出错会导致蓝屏/宕机。Ring 1-2中间层较少使用某些旧式驱动或虚拟化技术现代通用 OS 很少用。Ring 3用户态 (User Mode)受限特权PHP只能访问自己的内存空间。想操作硬件?必须通过系统调用陷入内核。出错只会杀死当前进程。💡 核心洞察PHP 代码永远无法直接操作硬件(如网卡、磁盘)。它必须“求助”于内核。这种“求助”是有代价的。

长风破浪会有时的博客 142

激光雷达点云可视化:Open3D与PCL实战

激光雷达点云可视化:Open3D与PCL实战 ,人工智能,计算机视觉,大模型,AI,该文围绕激光雷达点云可视化,介绍了Open3D与PCL的实战应用。先阐述点云基础概念、特点及可视化意义,接着讲解Open3D的简介、环境配置,以及其在点云读取、显示、颜色设置、下采样和滤波等方面的实战操作,还介绍了PCL的基础、环境配置及相关实战,包括点云读取、显示、颜色设置、下采样和滤波,同时对比了两者的易用性、功能覆盖、性能和适用场景,给出综合实战案例与常见问题解决方法,为点云可视化处理提供了全面指导。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 12万+

Coze实战:解锁多Bot协同与条件分支工作流的奥秘

本文详细介绍了在字节跳动Coze平台实现多Bot协同与条件分支工作流的方法。首先阐述了Coze平台的功能优势,包括丰富的插件、知识库和工作流功能。随后分步骤讲解了多Bot协同的实现:从准备工作、创建Bot到协同配置,并提供了电商客服的实例演示。在条件分支工作流部分,详细说明了条件节点的作用类型、条件设定方法以及具体配置操作,强调测试优化的重要性。最后通过电商平台综合案例,展示了多Bot协同与条件分支的实际应用效果,并针对常见问题提供解决方案。文章为开发者在Coze平台上构建智能应用提供了实用指导,有助于提升

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 450

Anthropic 3.7上线:提示工程层正走向‘零维护’时代

提示工程曾是大模型应用开发的核心环节,本质是在人类自然语言指令与模型向量空间之间搭建脆弱映射。随着上下文感知能力增强和隐式意图推断技术成熟,传统显式prompt编写正被结构化上下文提示(context_hints)、知识锚点(context_anchors)等新范式替代。这种演进并非取消提示逻辑,而是将其从应用层上移至模型推理时的动态接地(context grounding)过程,显著降低维护成本、提升泛化鲁棒性,并推动RAG、智能体编排等场景向轻量化、高确定性方向升级。本文聚焦Anthropic 3.7

weixin_33725270的博客 313

Abaqus数据导出技巧:轻松处理大量XY数据

通过上述三种方法,我们可以解决Abaqus中大量XY数据导出的问题。无论是使用插件、编写Python脚本,还是利用Abaqus的内置报告功能,都可以帮助我们高效地处理数据。希望这篇博客能够帮助到你,提高你在Abaqus使用过程中的数据处理效率。

m0_62153576的博客 1916

为什么92%的早期用户在升级后QPS翻倍?拆解Gemini新调度引擎的7个隐藏能力

Gemini服务升级公告揭示新调度引擎如何提升性能:通过动态负载均衡、智能缓存预热等7项能力,显著降低延迟、提高资源利用率,适用于高并发AI推理场景。92%早期用户QPS翻倍验证实效,值得收藏。

SimCompile的博客 172

在 SAP GUI 里开发与调用 Adobe PDF 表单:SFP 建模 + Driver Program 调用的全流程实战

本文介绍了在SAP系统中使用Adobe PDF表单的完整流程。重点阐述了SAP Interactive Forms相比传统表单工具的优势,特别是在处理复杂排版、条码和交互式字段时的适用性。文章详细说明了开发流程:从安装设计工具Adobe LiveCycle Designer开始,到在SFP事务码中创建Interface和Form的数据模型,再到编写驱动程序的ABAP代码实现PDF输出。特别强调了Interface作为数据契约的重要性,以及如何通过分层设计实现前后端分离开发。最后提供了标准调用链的示例代码,展

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 279

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 拦截Minifilter与应用层通信的FltMessage
下一篇: 在内核中阻止进程创建的正确方法
FFE4
博客等级 码龄9年 234粉丝 166原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值