Windows Internals 读书笔记 10.4.6:WMI 安全模型——为什么 WMI 能访问系统资源,但不能随便访问?

news2026/5/1 3:46:10
个人主页杨利杰YJlio❄️个人专栏《Sysinternals实战教程》 《Windows PowerShell 实战》 《WINDOWS教程》 《IOS教程》《微信助手》 《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》让复杂的事情更简单让重复的工作自动化文章目录1. Windows Internals 读书笔记 10.4.6WMI 安全模型——为什么 WMI 能访问系统资源但不能随便访问2. 我先把结论写在前面WMI 安全模型管的是三件事3. WMI 的身份认证与授权先证明你是谁再决定你能做什么3.1 身份认证你是谁3.2 授权你能做什么3.3 认证与授权的区别4. WMI 命名空间权限很多 WMI 安全问题是按 Namespace 控制的4.1 为什么 Namespace 很重要4.2 常见权限项怎么理解4.3 如何打开 WMI 控制台查看 Namespace 权限5. 远程 WMI 调用的安全链路为什么远程访问最容易失败5.1 远程 WMI 请求大致会经过哪些层5.2 远程 WMI 常见失败原因5.3 远程 WMI 最小验证命令6. WMI Provider 访问控制WMI 不是终点Provider 才是落地动作6.1 Provider 层为什么会失败6.2 如何判断是否 Provider 层异常7. WMI 安全风险与最佳实践既要能用也要可控、可审计、可追溯7.1 常见风险点7.2 推荐最佳实践8. 桌面支持排障WMI 访问失败应该怎么查8.1 推荐排查流程8.2 本地 WMI 基础验证8.3 查看 WMI-Activity 日志9. 常见误区这些做法很容易把 WMI 问题越修越乱9.1 误区一WMI 查询失败就重建 Repository9.2 误区二管理员账号一定能远程访问 WMI9.3 误区三开放防火墙就等于修好了 WMI9.4 误区四给 Everyone Full Control 最省事9.5 误区五只看最终报错不看第一个异常点10. 可直接用于工单记录的排查模板11. 自测题检查你是否真正理解 WMI 安全模型12. 总结WMI 安全模型的核心是把强大的管理能力关进权限边界里13. 下一节预告继续理解 WMI 的诊断与排障价值1. Windows Internals 读书笔记 10.4.6WMI 安全模型——为什么 WMI 能访问系统资源但不能随便访问读到Windows Internals 10.4.6WMI 安全模型时我觉得这一节非常适合企业桌面运维、Windows 排障、安全审计人员重点理解。因为 WMI 表面上看只是一个“查询系统信息”的接口例如查询系统版本、服务、进程、硬件、事件日志Get-CimInstanceWin32_OperatingSystemGet-CimInstanceWin32_ProcessGet-CimInstanceWin32_Service但真正站在系统安全角度看WMI 绝不是一个普通查询工具。它可以读取系统信息、调用方法、触发远程管理、访问命名空间、调用 Provider甚至在某些场景下执行远程操作。所以问题来了既然 WMI 能看到这么多系统对象Windows 是如何控制“谁能访问、能访问哪里、能做什么”的这就是 WMI 安全模型要解决的问题。一句话理解WMI 安全模型不是单点权限控制而是一条从用户身份、客户端请求、DCOM/RPC 传输、WMI 服务、命名空间权限、Provider 访问控制到目标系统资源的多层安全链路。这张图适合放在文章开头。它从用户层、客户端层、传输层、WMI 服务层、Repository、Provider 到系统资源层把 WMI 请求如何一步步受到安全控制展示出来。2. 我先把结论写在前面WMI 安全模型管的是三件事WMI 安全模型可以先压缩成三句话身份认证确认你是谁授权检查确认你能做什么命名空间与 Provider 控制确认你能访问哪些 WMI 数据和底层资源也就是说WMI 并不是“只要能连上就能查一切”。它中间至少会经历这些判断用户是谁 凭据是否有效 是否通过本地或域身份认证 是否允许远程访问 DCOM/RPC 是否允许通信 WMI 命名空间是否授权 是否允许执行方法 Provider 是否允许访问底层资源 目标资源本身是否还有权限限制WMI 的安全本质是把 Windows 账户体系、组成员身份、ACL、DCOM/RPC 安全、命名空间权限和 Provider 访问控制串成一条完整链路。只要其中任意一层不满足WMI 请求就可能失败。这也是为什么远程 WMI 排障经常出现一种情况账号看起来是管理员 网络也能 ping 通 但 WMI 远程查询就是失败原因往往不是“WMI 坏了”而是安全链路中的某一层没有通过。3. WMI 的身份认证与授权先证明你是谁再决定你能做什么WMI 安全模型中最基础的两个概念是Authentication身份认证Authorization授权这两个词看起来相似但不是一回事。这张图适合放在本节帮助读者理解身份认证负责确认“你是谁”授权负责判断“你能做什么”。3.1 身份认证你是谁身份认证的核心问题是这个 WMI 请求到底来自哪个用户、哪台计算机、哪组凭据常见身份来源包括本地账户域账户管理员账户当前交互式登录用户远程传入的凭据。认证方式可能涉及KerberosNTLMRPC/DCOM 认证级别本地登录令牌远程访问令牌。从桌面支持视角看最常见的问题是我明明用了管理员账号为什么远程 WMI 还是失败这时不能只看“账号是不是管理员”还要看是否跨域是否工作组环境是否使用本地管理员是否触发 UAC 远程限制是否被防火墙或 DCOM 策略拦截是否有正确的命名空间权限。认证只解决“这个人是谁”不等于已经允许他做所有操作。3.2 授权你能做什么授权解决的是另一个问题这个用户通过认证后是否有权限访问目标 WMI 命名空间、读取对象、调用方法、修改实例或访问 Provider授权通常依赖用户组本地安全策略域组策略ACLWMI 命名空间安全描述符远程启用权限方法执行权限。例如普通用户可能只能读取部分 WMI 信息但不能执行某些管理方法管理员可以访问更多命名空间和方法但仍然可能受 UAC、DCOM、防火墙、命名空间 ACL 限制。WMI 不是“管理员账号万能通行证”而是分层授权模型。3.3 认证与授权的区别可以用一句话记住Authentication证明你是谁 Authorization决定你能做什么或者更通俗一点身份认证 门卫看身份证 授权检查 进门后看你能不能进机房、能不能动服务器排障时不要把“能登录系统”误认为“能远程调用 WMI”。登录成功只是第一步后面还有授权、传输、命名空间和 Provider 层检查。4. WMI 命名空间权限很多 WMI 安全问题是按 Namespace 控制的WMI 有一个非常关键的组织结构Namespace命名空间。常见命名空间包括root root\cimv2 root\default root\subscription root\security root\Microsoft\Windows\...不同命名空间可以配置不同的访问权限。这张图适合放在本节说明 WMI 安全并不是“一把总锁”而是每个 Namespace 都可以有自己的访问边界。4.1 为什么 Namespace 很重要因为 WMI 的类、实例、方法、事件订阅都挂在不同命名空间下。例如命名空间常见用途root\cimv2最常用的系统管理命名空间包含大量 Win32_* 类root\default系统默认配置相关类root\subscriptionWMI 永久事件订阅相关对象root\security安全相关数据root\Microsoft\Windows\...Windows 组件或厂商扩展命名空间所以某个账号能访问root\cimv2不代表它能访问root\subscription。WMI 安全很多时候是按命名空间分区控制的不同 Namespace 可以有不同的 ACL。4.2 常见权限项怎么理解在 WMI 命名空间中常见权限通常包括权限项作用理解Enable Account允许账号访问该命名空间Remote Enable允许通过远程方式访问Execute Methods允许执行 WMI 方法Provider Write允许 Provider 写入或修改数据Full Write更高等级的写入权限Read Security读取安全描述符Edit Security修改安全描述符风险较高排障时尤其关注两个权限Enable Account Remote Enable因为很多远程 WMI 查询失败本质上就是账号没有被允许远程访问目标命名空间。4.3 如何打开 WMI 控制台查看 Namespace 权限可以使用wmimgmt.msc操作路径Win R → 输入 wmimgmt.msc → 右键 WMI 控制 → 属性 → 安全 → 选择命名空间 → 安全这里可以查看或配置某个命名空间的访问权限。不建议随意给 Everyone 或普通用户授予高权限尤其是 Execute Methods、Provider Write、Edit Security 这类权限。推荐按业务需求授予最小必要权限例如只给指定运维组授予指定命名空间的读取或远程启用权限。5. 远程 WMI 调用的安全链路为什么远程访问最容易失败本地 WMI 查询相对简单但远程 WMI 调用就复杂得多。因为远程 WMI 不只是 WMI 自己的权限问题还会经过网络、RPC、DCOM、防火墙、UAC、命名空间权限等多层检查。这张图适合放在本节用来解释远程 WMI 能不能成功取决于多层安全条件是否同时满足。5.1 远程 WMI 请求大致会经过哪些层可以简化成下面这条链路管理端工具 ↓ 网络连接 ↓ 防火墙规则 ↓ RPC Endpoint Mapper ↓ DCOM 会话 ↓ WMI 服务 Winmgmt ↓ 命名空间权限检查 ↓ Provider 调用 ↓ 目标系统资源其中任何一层失败都会表现为远程 WMI 调用失败。5.2 远程 WMI 常见失败原因常见原因包括层级常见问题账号权限非管理员、凭据错误、跨域信任异常UAC 远程限制本地管理员远程令牌被过滤防火墙WMI / DCOM / RPC 相关入站规则未放行DCOM 设置DCOM 未启用或访问权限不足RPC 动态端口TCP 135 可通但动态端口被拦截命名空间 ACL没有 Remote Enable 或 Execute MethodsProviderProvider 内部权限或资源访问失败服务状态Winmgmt 服务异常或不可用远程 WMI 失败时不要直接判断“账号权限不够”。账号只是其中一层防火墙、DCOM、UAC、Namespace ACL 都可能是根因。5.3 远程 WMI 最小验证命令可以先用下面命令测试# 测试远程 WMI / CIM 查询系统信息Get-CimInstance-ClassName Win32_OperatingSystem-ComputerName 目标主机名也可以测试服务类Get-CimInstance-ClassName Win32_Service-ComputerName 目标主机名|Select-Object-First 5 Name,State,StartMode如果失败需要记录完整报错信息而不是只写“WMI 无法连接”。远程 WMI 排障必须保留命令、目标主机、账号类型、报错信息、防火墙状态、命名空间权限截图。6. WMI Provider 访问控制WMI 不是终点Provider 才是落地动作WMI 请求最终往往会落到 Provider。Provider 可以理解成把 WMI 查询或方法调用映射到真实系统资源的适配层。例如查询进程信息时Provider 需要访问进程对象查询服务信息时Provider 需要访问 Service Control Manager查询注册表信息时Provider 可能需要访问注册表查询事件日志时Provider 需要访问 Event Log查询硬件信息时Provider 需要读取硬件或驱动提供的数据。所以即使通过了 WMI 命名空间权限也不代表底层资源一定能访问成功。6.1 Provider 层为什么会失败常见原因包括Provider 本身异常Provider 注册信息损坏Provider 依赖的服务未启动底层资源访问被拒绝Provider 需要更高权限WMI Repository 数据不一致第三方 Provider 存在兼容性问题。WMI 查询失败不一定是 WMI 服务本身坏了也可能是对应 Provider 无法访问底层资源。6.2 如何判断是否 Provider 层异常可以从事件日志入手事件查看器 → 应用程序和服务日志 → Microsoft → Windows → WMI-Activity → Operational重点看ClientProcessIdUserNamespaceOperationErrorCodeProviderName。也可以用 PowerShell 先缩小范围# 查询当前系统常见 WMI 类确认基础 WMI 是否正常Get-CimInstanceWin32_OperatingSystemGet-CimInstanceWin32_ComputerSystemGet-CimInstanceWin32_Service|Select-Object-First 5如果部分类失败、部分类正常就要怀疑特定 Provider 或命名空间问题如果全部失败则优先看 WMI 服务、Repository、权限和系统组件状态。7. WMI 安全风险与最佳实践既要能用也要可控、可审计、可追溯WMI 是强大的管理入口也可能成为攻击者横向移动、远程执行、持久化订阅的重要手段。所以企业环境中WMI 安全不能只考虑“能不能用”还要考虑谁可以访问 从哪里访问 能访问哪些命名空间 能执行哪些方法 有没有日志 能不能审计 异常访问能不能追踪这张图适合放在本节用来总结 WMI 的常见风险点与最佳实践最小权限、限制远程访问、精细化命名空间授权、启用日志审计、结合组策略与防火墙控制。7.1 常见风险点风险点说明权限过大管理员或高权限账户滥用导致越权操作匿名或弱认证认证强度不足增加被滥用风险远程访问过宽WMI/DCOM/WinRM 在不必要网络中暴露恶意脚本滥用 WMI利用 WMI 执行命令、收集信息、远程操作永久事件订阅滥用使用__EventFilter、__EventConsumer、绑定对象实现持久化审计缺失没有日志或日志未集中异常访问难以追踪WMI 本身不是恶意工具但它的能力足够强如果权限和审计没有控制好就可能成为高风险管理通道。7.2 推荐最佳实践建议在企业环境中采用以下做法最小权限不给普通用户不必要的 WMI 远程访问权限不随意给 Everyone 授权按运维组、业务组细分访问边界。限制远程访问范围只允许管理网段访问远程 WMI配合 Windows 防火墙或网络 ACL不在普通办公网大范围开放 DCOM/RPC。精细化命名空间授权对root\cimv2、root\subscription等关键命名空间分别控制对高风险命名空间采用更严格权限不给不必要的 Execute Methods、Provider Write、Edit Security。启用日志审计关注 WMI-Activity 日志必要时接入 SIEM 或日志平台记录账号、来源、命名空间、操作、错误码。定期检查永久事件订阅重点检查__EventFilter__EventConsumer__FilterToConsumerBinding防止被用于隐蔽持久化。正确的 WMI 安全策略不是简单禁用 WMI而是在“可管理”和“可控、可审计、可追溯”之间找到平衡。8. 桌面支持排障WMI 访问失败应该怎么查企业桌面支持中经常会遇到远程资产采集失败管理平台无法读取终端信息脚本无法远程查询服务安全软件调用 WMI 失败监控系统无法获取 WMI 数据软件安装器依赖 WMI 查询时失败。这类问题不要直接重建 WMI Repository更不能一上来就重装系统。8.1 推荐排查流程失败成功WMI 查询失败确认本地 WMI 是否正常本地查询是否成功?检查 Winmgmt 服务 / WMI-Activity 日志 / Repository 状态确认是否为远程访问问题检查账号与凭据检查防火墙与 RPC/DCOM检查 UAC 远程限制检查 Namespace 权限检查 Provider 与底层资源权限记录证据并验证修复8.2 本地 WMI 基础验证先在目标机器本地执行# 验证基础 WMI 是否可用Get-CimInstanceWin32_OperatingSystem# 验证服务类查询Get-CimInstanceWin32_Service|Select-Object-First 5 Name,State# 验证进程类查询Get-CimInstanceWin32_Process|Select-Object-First 5 ProcessId,Name如果本地都失败优先看 WMI 服务、Repository、Provider、系统组件。如果本地成功、远程失败再看账号、远程权限、防火墙、DCOM/RPC、UAC、Namespace ACL。8.3 查看 WMI-Activity 日志路径事件查看器 → 应用程序和服务日志 → Microsoft → Windows → WMI-Activity → Operational重点字段ClientProcessId User Namespace Operation ErrorCode ProviderName这类日志可以帮助你判断是哪个进程发起 WMI 请求使用哪个用户身份访问哪个命名空间哪个 Provider 出错是否有访问拒绝或执行失败。WMI 排障要从“本地是否正常、远程是否正常、哪个命名空间失败、哪个 Provider 失败”四个维度逐步收敛。9. 常见误区这些做法很容易把 WMI 问题越修越乱9.1 误区一WMI 查询失败就重建 Repository不建议。WMI Repository 损坏确实可能导致问题但不是所有 WMI 失败都是 Repository 损坏。更稳妥的顺序是先查服务 → 再查日志 → 再查权限 → 再查 Provider → 最后再考虑 Repository 修复不要把重建 Repository 当成万能修复。它可能影响已注册 Provider 和管理软件状态。9.2 误区二管理员账号一定能远程访问 WMI不一定。管理员账号还可能受到UAC 远程限制本地安全策略防火墙DCOMNamespace ACL域信任凭据传递方式。9.3 误区三开放防火墙就等于修好了 WMI不准确。防火墙只是传输层条件之一。即使网络通了授权不通过WMI 也会拒绝访问。9.4 误区四给 Everyone Full Control 最省事非常不建议。这会把 WMI 变成高风险入口尤其是允许远程启用、方法执行、写入 Provider 或修改安全描述符时。WMI 授权必须遵守最小权限原则不要为了临时省事制造长期安全隐患。9.5 误区五只看最终报错不看第一个异常点WMI 错误有时会层层包装。最终看到的可能只是Access denied RPC server unavailable Provider load failure Invalid namespace但真正根因可能更早发生在防火墙阻断DCOM 激活失败Namespace 权限不足Provider 加载异常底层资源访问拒绝。排障时要回到时间线找第一个异常点而不是只盯着最终报错。10. 可直接用于工单记录的排查模板如果后续遇到 WMI 访问失败可以按下面模板记录工单。问题现象 用户/系统反馈 WMI 查询失败表现为远程资产采集失败 / 管理平台读取终端信息失败 / PowerShell 查询报错。 影响范围 单台 / 多台 / 指定网段 / 指定账号 / 指定系统版本。 检测动作 1. 本地执行 Get-CimInstance Win32_OperatingSystem确认本地 WMI 是否正常。 2. 远程执行 Get-CimInstance -ComputerName 目标主机确认是否为远程链路问题。 3. 检查 Winmgmt 服务状态。 4. 查看 WMI-Activity/Operational 日志记录 ClientProcessId、User、Namespace、ErrorCode。 5. 检查防火墙、DCOM/RPC、UAC 远程限制与命名空间权限。 初步判断 问题更可能位于 账号权限 / 防火墙 / DCOM / Namespace ACL / Provider / Repository 层。 处理动作 根据实际证据执行权限调整、防火墙规则修复、命名空间授权修复或 Provider 修复。 验证结果 再次执行本地与远程 WMI 查询确认查询成功并记录截图/命令输出。 预防建议 将 WMI 远程访问权限、命名空间权限和日志审计纳入终端标准化检查项。工单不要只写“修复 WMI”。要写清楚是哪一层失败、怎么验证、怎么恢复、后续如何避免复发。11. 自测题检查你是否真正理解 WMI 安全模型可以用下面这些问题检查自己是否真正理解这一节WMI 的 Authentication 和 Authorization 有什么区别为什么管理员账号不一定能远程访问 WMIroot\cimv2和root\subscription为什么可以有不同权限Remote Enable权限主要解决什么问题远程 WMI 为什么会涉及 DCOM/RPC 和防火墙Provider 在 WMI 请求中承担什么角色为什么 WMI 访问失败不能直接重建 RepositoryWMI-Activity 日志中哪些字段最值得关注永久事件订阅为什么是 WMI 安全审计重点企业环境中如何做到 WMI “可用、可控、可审计、可追溯”如果这些问题能回答清楚说明你不是在背 WMI 名词而是真正理解了 WMI 作为 Windows 管理基础设施时的安全边界。12. 总结WMI 安全模型的核心是把强大的管理能力关进权限边界里本文围绕Windows Internals 10.4.6WMI 安全模型把 WMI 的安全控制链路拆成了几个关键层次身份认证先确认访问者是谁授权检查再判断能不能访问、能不能执行命名空间权限按 Namespace 控制访问边界DCOM/RPC 安全控制远程 WMI 的通信链路Provider 访问控制决定请求能否真正落到系统资源日志与审计让 WMI 操作可追溯、可复盘。WMI 的强大不在于它能查询系统信息而在于它把 Windows 管理对象统一暴露出来WMI 的风险也正来自这种强大的统一入口。对桌面支持工程师来说理解 WMI 安全模型可以帮助我们更准确地排查远程管理失败、资产采集失败、脚本调用失败和管理平台异常。不要把 WMI 当成一个简单命令接口。它背后是一条完整的安全链路任何一层权限、认证、传输或 Provider 异常都可能导致最终访问失败。13. 下一节预告继续理解 WMI 的诊断与排障价值如果后续继续写 WMI 相关内容我会把这条线继续往下展开WMI 架构 ↓ WMI Provider ↓ WMI 安全模型 ↓ WMI-Activity 日志 ↓ WMI Repository ↓ WMI 故障排查与修复这样再遇到 WMI 问题时就不会只会执行winmgmt /resetrepository而是能先判断到底是本地 WMI 异常、远程访问异常、命名空间权限异常、Provider 异常还是底层资源访问异常 返回顶部点击回到顶部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2570835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…