当前位置: 首页 > news >正文

Windows 权限配置文件解析与安全分析(GPP,GPO,LSA)

在 Windows 网络环境中,权限配置文件用于管理用户权限、密码策略和访问控制,涵盖组策略首选项(GPP)本地安全策略(LSA)注册表以及 Active Directory 组策略(GPO) 等。这些配置文件用于定义用户权限、密码策略和访问控制,直接影响系统的安全性和稳定性。然而,若配置不当或缺乏防护,这些文件中存储的敏感信息(如明文或加密凭据)可能成为攻击者的突破口,导致权限提升、凭据泄露甚至域控权的完全丧失。

本文将详细介绍 Windows 中常见的权限配置文件,包括其存储路径、作用、安全风险及防护措施。


1. 组策略首选项(GPP - Group Policy Preferences)

1.1 GPP 功能与作用

组策略首选项(GPP)是 Windows Server 提供的一项强大功能,允许管理员通过图形化界面或脚本集中管理本地用户账户、映射网络驱动器、修改注册表项以及配置服务等。它是对传统组策略(GPO)的扩展,旨在提升配置灵活性。GPP 的核心配置文件以 XML 格式存储,位于域控制器(DC)的 SYSVOL 共享目录中,默认对所有经过身份验证的域用户开放读取权限。

1.2 GPP 配置文件的存储路径

GPP 的 XML 文件通常位于以下路径:

\\<DOMAIN>\SYSVOL\<DOMAIN>\Policies\{GUID}\Machine\Preferences\Groups\Groups.xml
  • <DOMAIN>:Windows 域的名称。
  • {GUID}:对应组策略对象的唯一标识符(Globally Unique Identifier)。

这些文件以明文形式记录配置细节,便于管理和解析,但也为安全风险埋下隐患。

1.3 GPP XML 配置格式解析

GPP 使用结构化的 XML 格式存储配置信息,以下是一个典型示例:

<?xml version="1.0" encoding="utf-8"?>
<Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}"><User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}" name="active.htb\SVC_TGS" image="2" changed="2018-07-18 20:46:06" uid="{EF57DA28-5F69-4530-A59E-AAB58578219D}"><Properties action="U" newName="" fullName="" description="" cpassword="edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ" changeLogon="0" noChange="1" neverExpires="1" acctDisabled="0" userName="active.htb\SVC_TGS"/></User>
</Groups>
关键字段解析:
  • cpassword:存储经过加密的用户密码,是攻击者最关注的目标。
  • userName:定义的目标用户账户,通常包括域名和账户名。
  • neverExpires="1":表示密码永不过期,这一设置虽便于管理,却显著增加账户被滥用的风险。

1.4 GPP 的安全隐患

  1. 弱加密机制暴露密码
    GPP 使用 DES(Data Encryption Standard)cpassword 字段进行加密,然而加密密钥已在 2012 年被 Microsoft 公开(AES 密钥为 4e99e2c38d9960b8e7f4a8a4b41391db)。这使得攻击者能够轻松解密密码,形同明文存储。

  2. SYSVOL 共享的过度开放性
    SYSVOL 目录默认对所有域内经过身份验证的用户开放读取权限,攻击者只需具备最低权限即可访问 GPP 文件,提取加密凭据。

1.5 GPP 密码解密方法

攻击者可利用现成工具或脚本解密 cpassword

  • 使用 gpp-decrypt 工具:
    gpp-decrypt "edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ"
    
  • PowerShell 脚本解密:
    $encrypted = "edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ"
    $key = [Convert]::FromBase64String("4e99e2c38d9960b8e7f4a8a4b41391db")
    $decrypted = [System.Security.Cryptography.ProtectedData]::Unprotect([Convert]::FromBase64String($encrypted), $key, 0)
    [System.Text.Encoding]::UTF8.GetString($decrypted)
    

上述方法均可迅速还原出明文密码。

1.6 GPP 安全加固策略

  1. 杜绝在 GPP 中存储密码
    Microsoft 自 2014 年发布补丁(KB2962486)后,已移除 GUI 中直接存储密码的选项。然而,旧策略可能遗留敏感数据,需彻底审查。

  2. 清理 SYSVOL 中的遗留配置
    使用 PowerShell 扫描并定位含 cpassword 的文件:

    Get-ChildItem -Path \\<domain>\SYSVOL -Recurse | Select-String -Pattern "cpassword"
    

    发现后,立即修改或删除相关策略。

  3. 引入 LAPS 替代方案
    本地管理员密码解决方案(LAPS) 可生成随机密码并定期更新,取代 GPP 的静态凭据管理。


2. 本地安全策略(LSA - Local Security Authority)

2.1 LSA 的核心功能

本地安全权限(LSA)是 Windows 认证和访问控制的中枢,负责管理用户登录、凭据验证及安全策略执行。其核心组件包括:

  • SAM(安全账户管理器):存储本地账户的哈希。
  • LSASS(本地安全认证子系统):运行时缓存域凭据。

2.2 LSA 配置文件的具体内容

LSA 的配置文件主要以注册表条目的形式存储,同时在运行时由 lsass.exe 进程动态管理。其核心数据分布在以下几个方面:

2.2.1 注册表中的 LSA 配置

LSA 的静态配置存储在注册表路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

以下是常见的键值及其内容示例:

  • LmCompatibilityLevel

    • 类型:REG_DWORD
    • 作用:定义 LAN Manager(LM)认证级别。
    • 示例值:5(仅使用 NTLMv2 和 Kerberos,拒绝较弱的 LM 和 NTLM)。
    • 格式:
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
      "LmCompatibilityLevel"=dword:00000005
      
  • NoLMHash

    • 类型:REG_DWORD
    • 作用:禁用存储 LM Hash(较弱的哈希格式)。
    • 示例值:1(禁用)。
    • 格式:
      "NoLMHash"=dword:00000001
      
  • RunAsPPL

    • 类型:REG_DWORD
    • 作用:启用 LSASS 的受保护进程轻量级(Protected Process Light)模式。
    • 示例值:1(启用保护)。
    • 格式:
      "RunAsPPL"=dword:00000001
      
2.2.2 本地安全策略文件(Secedit 导出格式)

LSA 的部分策略可以通过 secedit 工具导出为 .inf 文件,文件内容以纯文本形式记录。例如:

[Unicode]
Unicode=yes
[System Access]
MinimumPasswordLength = 12
PasswordComplexity = 1
MaximumPasswordAge = 90
LockoutBadCount = 5
LockoutDuration = 30
[Registry Values]
MACHINE\System\CurrentControlSet\Control\Lsa\LmCompatibilityLevel=4
  • 字段解析
    • MinimumPasswordLength:密码最小长度。
    • PasswordComplexity:要求复杂密码(含大小写、数字等)。
    • LockoutBadCount:失败登录次数触发锁定。
2.2.3 LSASS 运行时内存内容

LSA 的动态数据存储在 lsass.exe 进程内存中,包括:

  • 明文凭据:当前登录用户的密码(若未启用 Credential Guard)。
  • NTLM/Kerberos 哈希:用于认证的哈希值。
  • 票据(Tickets):如 Kerberos TGT(Ticket Granting Ticket)。

这些内容无法直接以文件形式查看,但可通过工具(如 Mimikatz)从内存中提取。例如,Mimikatz 的输出可能如下:

Authentication Id : 0 ; 996 (00000000:000003e4)
User Name         : Administrator
Domain            : CONTOSO
Password          : P@ssw0rd123

补充说明

LSA 的配置文件内容并不以单一文件形式存在,而是分散在注册表和运行时内存中。其静态部分(注册表)定义了安全策略的框架,而动态部分(内存)承载了实时凭据,易被攻击者利用。


3. Active Directory 组策略(GPO - Group Policy Object)

3.1 GPO 的功能概述

GPO 是域环境中管理和强制执行安全策略的基石,涵盖账户锁定、UAC 设置、登录脚本等配置。它通过集中化管理提升效率,但也可能成为攻击目标。

3.2 GPO 配置文件的具体内容

GPO 的配置文件存储在域控制器的 SYSVOL 共享目录中,路径为:

\\<domain>\SYSVOL\<domain>\Policies\{GUID}

每个 GPO 以唯一的 GUID 命名,包含多个子目录和文件,涵盖策略定义、脚本和模板。以下是其主要内容的格式和示例:

3.2.1 GPO 的核心文件结构
  • GptTmpl.inf

    • 位置:{GUID}\Machine\Microsoft\Windows NT\SecEdit\GptTmpl.inf
    • 格式:纯文本 INF 文件。
    • 作用:定义安全设置(如密码策略、账户锁定)。
    • 示例内容:
      [Unicode]
      Unicode=yes
      [System Access]
      MinimumPasswordLength = 14
      PasswordComplexity = 1
      MaximumPasswordAge = 60
      [Event Audit]
      AuditSystemEvents = 1
      AuditLogonEvents = 3
      
      • 字段解析
        • AuditSystemEvents:系统事件审核(0=禁用,1=成功)。
        • AuditLogonEvents:登录事件审核(3=成功和失败)。
  • Registry.pol

    • 位置:{GUID}\Machine\Registry.pol{GUID}\User\Registry.pol
    • 格式:二进制文件(需用工具如 PolEdit 解析)。
    • 作用:存储注册表设置,直接应用到客户端的 HKEY_LOCAL_MACHINEHKEY_CURRENT_USER
    • 示例解析(文本化表示):
      Key: HKLM\SOFTWARE\Policies\Microsoft\Windows\System
      Value: DisableCMD
      Data: 1 (DWORD)
      
      表示禁用命令提示符。
  • Scripts

    • 位置:{GUID}\Machine\Scripts{GUID}\User\Scripts
    • 格式:批处理(.bat)、PowerShell(.ps1)等。
    • 作用:定义启动/关闭脚本或登录/注销脚本。
    • 示例(startup.bat):
      net use Z: \\server\share /persistent:yes
      echo Startup script executed > C:\log.txt
      
3.2.2 GPT.INI 文件
  • 位置:{GUID}\GPT.INI
  • 格式:INI 文件。
  • 作用:记录 GPO 的版本和基本属性。
  • 示例内容:
    [General]
    displayName=Secure Password Policy
    Version=65538
    
    • Version:策略版本号,用于同步检测。
3.2.3 XML 配置(特定扩展)

某些 GPO 扩展(如防火墙规则)使用 XML 格式,例如:

  • 文件:{GUID}\Machine\Preferences\WindowsSettings\WindowsFirewall.xml
  • 示例:
    <FirewallRule clsid="{...}"><Name>Block Inbound SMB</Name><Direction>In</Direction><Protocol>TCP</Protocol><LocalPort>445</LocalPort><Action>Block</Action>
    </FirewallRule>
    

补充说明

GPO 的配置文件内容高度模块化,涵盖安全策略(GptTmpl.inf)、注册表修改(Registry.pol)、脚本执行(Scripts)等多个方面。其格式多样(INF、二进制、XML),便于集中管理和分发,但也增加了被篡改的可能性。


总结

在 Windows 网络环境中,权限配置文件是保障系统安全与管理效率的关键支柱,包括 组策略首选项(GPP)本地安全策略(LSA)注册表Active Directory 组策略(GPO)。这些配置文件以多样化的格式(如 XML、INF、二进制和注册表键值)存储用户权限、密码策略和访问控制的定义,直接决定了系统的安全边界与稳定性。然而,其设计中的缺陷——如 GPP 的弱加密(DES 密钥公开)、LSA 内存中的明文凭据暴露,以及 GPO 的潜在篡改风险——若未妥善配置或缺乏防护,可能成为攻击者的突破口,导致凭据泄露、权限提升乃至域控制权的全面沦陷。

GPP 依赖 XML 存储于 SYSVOL,虽便于管理,却因过度开放的读取权限和高可解密的 cpassword 字段而脆弱;LSA 通过注册表(如 LmCompatibilityLevel)和运行时内存管理安全策略,但易受 Mimikatz 等工具的内存提取攻击;GPO 则以 INF(如 GptTmpl.inf)、二进制(Registry.pol)和脚本形式集中控制域策略,其模块化设计虽高效,却也为恶意修改提供了可能性。为此,管理员应采取综合加固措施:清理 GPP 遗留密码并引入 LAPS、启用 LSA 的 Credential Guard 和保护模式、限制 GPO 访问并持续审计变更。通过优化配置文件使用与强化安全机制,可显著降低 Windows 环境的风险,构筑坚实的安全防线。

相关文章:

Windows 权限配置文件解析与安全分析(GPP,GPO,LSA)

在 Windows 网络环境中&#xff0c;权限配置文件用于管理用户权限、密码策略和访问控制&#xff0c;涵盖组策略首选项&#xff08;GPP&#xff09;、本地安全策略&#xff08;LSA&#xff09;、注册表以及 Active Directory 组策略&#xff08;GPO&#xff09; 等。这些配置文件…...

【微服务】基础概念

1.什么是微服务 微服务其实就是一种架构风格&#xff0c;他提倡我们在开发的时候&#xff0c;一个应用应该是一组小型服务而组成的&#xff0c;每一个服务都运行在自己的进程中&#xff0c;每一个小服务都通过HTTP的方式进行互通。他更加强调服务的彻底拆分。他并不是仅局限于…...

MYOJ_4342:(洛谷P1087)[NOIP 2004 普及组] FBI 树(二叉树实操,递归提高)

题目描述 我们可以把由 “0” 和 “1” 组成的字符串分为三类&#xff1a;全 “0” 串称为 B 串&#xff0c;全 “1” 串称为 I 串&#xff0c;既含 “0” 又含 “1” 的串则称为 F 串。 FBI 树是一种二叉树&#xff0c;它的结点类型也包括 F 结点&#xff0c;B 结点和 I 结点三…...

LLM(13):词编码后的位置

原则上&#xff0c;token 嵌入是大型语言模型&#xff08;LLM&#xff09;的合适输入。然而&#xff0c;LLM 的一个小缺点是它们的自注意力机制无法指导序列中 token 的位置或顺序。在前面介绍的嵌入层的工作方式中&#xff0c;无论 token ID 在输入序列中的位置如何&#xff0…...

MINIQMT学习课程Day4

聚宽的模拟/实盘跟单系统&#xff0c;已经全部介绍完毕&#xff0c;上传完毕了&#xff0c;相信大家已经可以进行聚宽的miniqmt的交易了。如果还有疑问&#xff0c;私信我进行沟通。 现在开始进入新的课题&#xff0c;如何学习python&#xff0c;我不教那些乱七八糟的&#xff…...

AWS云服务:大数据公司实现技术突破与商业价值的核心引擎

在数据驱动决策的时代&#xff0c;大数据公司面临着海量数据存储、实时计算、复杂分析及安全合规等核心挑战。如何高效构建弹性、可扩展且低成本的技术架构&#xff0c;成为企业能否在竞争中胜出的关键。亚马逊云科技&#xff08;AWS&#xff09;作为全球云计算领域的领导者&am…...

Openpyxl使用教程(包含处理大数据量案例)

文章目录 一、简介功能特性应用场景使用优势 二、常用方法1、工作簿wb2、工作表ws 三、案例1、创建新工作簿2、将Excel数据存入list中3、按行读取文件(适合大文件)4、按指定行读取文件(适合大文件) 一、简介 在 Python 数据处理领域&#xff0c;openpyxl 凭借其卓越的功能与易…...

蓝桥杯15届 宝石组合

问题描述 在一个神秘的森林里&#xff0c;住着一个小精灵名叫小蓝。有一天&#xff0c;他偶然发现了一个隐藏在树洞里的宝藏&#xff0c;里面装满了闪烁着美丽光芒的宝石。这些宝石都有着不同的颜色和形状&#xff0c;但最引人注目的是它们各自独特的 “闪亮度” 属性。每颗宝…...

THE UNIVERSITY OF MANCHESTER-NUMERICAL ANALYSIS 1-3.4数值积分-复合积分公式

3.4.1 复合梯形法则 梯形法则仅使用两个点来近似积分,显然对于大多数应用来说,这不足够。为了提高精度,有多种方法可以利用更多的点和函数值。正如我们刚才在Newton-Cotes方法和辛普森法则中所看到的,一种方法是使用更高阶的插值函数。另一种方法是将区间划分为更小的区间…...

嵌入式系统应用-拓展-相关开发软件说明

这里以STM32的系列产品为例子&#xff0c;利用MDK的集成开发平台进行开发过程中&#xff0c;所有相关软件安装说明。 1 集成开发环境安装 1.1 MDK 下载 1.1.1 官网下载 官方下载地址&#xff1a; https://www.keil.com/download/product/ 选择MDK-ARM &#xff0c;填写一些…...

react实现上传图片到阿里云OSS以及问题解决(保姆级)

一、优势 提高上传速度&#xff1a;前端直传利用了浏览器与 OSS 之间的直接连接&#xff0c;能够充分利用用户的网络带宽。相比之下&#xff0c;后端传递文件时&#xff0c;文件需要经过后端服务器的中转&#xff0c;可能会受到后端服务器网络环境和处理能力的限制&#xff0c;…...

嵌入式学习笔记——ARM-中断与异常

文章目录 中断与异常的区别中断与 DMA 的区别中断能否睡眠&#xff1f;下半部能否睡眠&#xff1f;1. 中断处理程序不能睡眠2. 下半部&#xff08;SoftIRQ、Tasklet、Workqueue&#xff09; 中断处理注意点1. 快进快出2. 避免阻塞3. 正确返回值4. 如何处理大量任务5. 避免竞态问…...

OpenHarmony子系统开发 - 安全(十二)

OpenHarmony SELinux开发指导&#xff08;五&#xff09; 一、OpenHarmony SELinux常见问题 neverallow编译报错处理 现象描述 编译SELinux时会进行neverallow检查&#xff0c;当配置的策略不合理时&#xff0c;可能出现违反neverallow编译报错。 neverallow check failed…...

深入解析ARM与RISC-V架构的Bring-up核心流程

深入解析ARM与RISC-V架构的Bring-up核心流程 作者&#xff1a;嵌入式架构探索者 | 2023年10月 引言 在嵌入式开发中&#xff0c;处理器的Bring-up&#xff08;启动初始化&#xff09;是系统运行的第一道门槛。ARM和RISC-V作为两大主流架构&#xff0c;其Bring-up流程既有共性…...

【力扣hot100题】(054)全排列

挺经典的回溯题的。 class Solution { public:vector<vector<int>> result;void recursion(vector<int>& nums,vector<int>& now){if(nums.size()0){result.push_back(now);return ;}for(int i0;i<nums.size();i){now.push_back(nums[i]);…...

vue中如何动态的绑定图片

在项目中遇到需要动态的改变图片路径&#xff0c;图片路径并非是从后台获取过来的数据。 因此在data中必须用require加载&#xff0c;否则会当成字符串来处理。...

湖北师范大学计信学院研究生课程《工程伦理》12.6章节练习

1【单选题】下列哪个不是数字身份的特点? A. 多样性 B. 唯一性 C. 可变性 D. 允许匿名和假名 2【单选题】下列哪项不是现代国家的基本职能。 A. 保护政权统一 B. 保护本国面对其他国家侵犯 C. 保护国内每个人免受他人侵犯 D. 承担发展国民经济 3【单选题】哪个国家在全球率先发…...

prism WPF 登录对话框登录成功后显示主界面

prism WPF 登录对话框登录成功后显示主界面 项目结构 LoginUC.xaml <UserControl x:Class"PrismWpfApp.Views.LoginUC"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml…...

MySQL统计信息

1. 什么是统计信息&#xff1f; 统计信息就像是数据库的"地图"&#xff0c;它告诉优化器&#xff1a; 每个表有多大&#xff08;有多少行数据&#xff09; 每个索引的"区分度"&#xff08;有多少不同的值&#xff09; 数据分布情况&#xff08;哪些值出…...

Spark,配置hadoop集群2

编写Hadoop集群启停脚本 1.建立新文件&#xff0c;编写脚本程序 在hadoop101中操作&#xff0c;在/root/bin下新建文件&#xff1a;myhadoop&#xff0c;输入如下内容&#xff1a; 2.分发执行权限 保存后退出&#xff0c;然后赋予脚本执行权限 [roothadoop101 ~]$ chmod x /r…...

⭐算法OJ⭐重建行程【哈密尔顿路径】(C++ 实现)Reconstruct Itinerary

You are given a list of airline tickets where tickets[i] [from_i, to_i] represent the departure and the arrival airports of one flight. Reconstruct the itinerary in order and return it. All of the tickets belong to a man who departs from “JFK”, thus, t…...

大模型如何优化数字人的实时交互与情感表达

标题:大模型如何优化数字人的实时交互与情感表达 内容:1.摘要 随着人工智能技术的飞速发展&#xff0c;数字人在多个领域的应用愈发广泛&#xff0c;其实时交互与情感表达能力成为提升用户体验的关键因素。本文旨在探讨大模型如何优化数字人的实时交互与情感表达。通过分析大模…...

【含文档+PPT+源码】基于SpringBoot+Vue旅游管理网站

项目介绍 本课程演示的是一款 基于SpringBootVue旅游管理网站&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项目附…...

理解OSPF Stub区域和各类LSA特点

之前学习到OSPF特殊区域和各类类型LSA的分析后&#xff0c;一直很混乱&#xff0c;在网上也难找到详细的解释&#xff0c;在看了 HCNP书本内容后&#xff0c;对这块类容理解更加清晰&#xff0c;本次内容&#xff0c;我们使用实验示例&#xff0c;来对OSPF特殊区域和各 类型LSA…...

AI智算-K8s如何利用GPFS分布式并行文件存储加速训练or推理

文章目录 GPFS简介核心特性存储环境介绍存储软件版本客户端存储RoCEGPFS 管理(GUI)1. 创建 CSI 用户2. 检查GUI与k8s通信文件系统配置1. 开启配额2. 启用filesetdf文件系统3. 验证文件系统配置4. 启用自动inode扩展存储集群配置1. 启用对根文件集(root fileset)配额2. igno…...

Linux如何设置bash为默认shell

大部分情况下&#xff0c;Linux的默认shell是bash&#xff0c;但某些Linux发行版&#xff0c;例如Kali&#xff0c;默认的终端是zsh&#xff0c;本文以Kali为例&#xff0c;将Kali的默认shell从zsh改为bash。 其实Kali早期的shell也是bash&#xff0c;2020 版本之后&#xff1a…...

leetcode-代码随想录-链表-翻转链表

题目 链接&#xff1a;206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]class Solution { public:ListNode* rev…...

CSS快速上手

第一章 CSS基础 首先来回答2个问题。 1.CSS是什么&#xff1f; CSS是用来控制网页外观的一门技术。 2.前端最核心的技术是什么&#xff1f;他们分别是用来干吗的&#xff1f; 前端最核心的技术有&#xff1a;HTML、CSS、JavaScript。 HTML用于控制网页的结构&#xff0c;CSS…...

虚拟现实 UI 设计:打造沉浸式用户体验

VR UI 设计基础与特点 虚拟现实技术近年来发展迅猛&#xff0c;其独特的沉浸式体验吸引了众多领域的关注与应用。在 VR 环境中&#xff0c;UI 设计扮演着至关重要的角色&#xff0c;它是用户与虚拟世界交互的桥梁。与传统 UI 设计相比&#xff0c;VR UI 设计具有显著的特点。传…...

搜索与图论 树的广度优先遍历 图中点的层次

适用性 当边的权值相等时&#xff0c;使用广度优先遍历&#xff0c;往往是求图&#xff08;树&#xff09;的最短路径最优方法 抽象理解 伪代码 建立队列 添加第一个起始点到队列&#xff0c;标记其不可访问 while(队列不为空)//开始循环{获取队列中的队首元素&#xff0c;获…...

DHCP之报文格式

字段说明&#xff1a; op (op code): 表示报文的类型&#xff0c;取值为 1 或 2&#xff0c;含义如下 1:客户端请求报 2:服务器响应报文 Secs (seconds):由客户端填充&#xff0c;表示从客户端开始获得 IP 地址或 IP 地址续借后所使用了的秒数&#xff0c;缺省值为 3600s。 F…...

Docker安装、配置Redis

1.如果没有docker-compose.yml文件的话&#xff0c;先创建docker-compose.yml 配置文件一般长这个样子 version: 3services:redis:image: redis:latestcontainer_name: redisports:- "6379:6379"command: redis-server --requirepass "123456"restart: a…...

空中无人机等动态目标识别2025.4.4

* 一.无人机动态数据概述* 1.1 空中动态数据定义 在无人机动态数据的范畴中&#xff0c; 空中动态数据 是一个核心概念。它主要包括无人机在飞行过程中产生的各种实时信息&#xff0c;如 位置、速度、高度、姿态 等[1]。这些数据通过传感器系统采集&#xff0c;并以特定格式存…...

【AI论文】通过R1-Zero类似训练改进视觉空间推理

摘要&#xff1a;人们越来越关注提升多模态大型语言模型&#xff08;MLLMs&#xff09;的推理能力。作为在物理领域中运作的人工智能代理的基石&#xff0c;基于视频的视觉空间智能&#xff08;VSI&#xff09;成为MLLMs最为关键的推理能力之一。本研究首次深入探讨了通过R1-Ze…...

游戏引擎学习第203天

回顾当前情况 在这里我将直播完成整个游戏的制作。我们现在面临一些技术上的困难&#xff0c;确实如此。我的笔记本电脑的电源接口坏了&#xff0c;所以我不得不准备了这台备用笔记本&#xff0c;希望它能够正常工作。我所以希望一切都还好&#xff0c;尽管我不完全确定是否一…...

从菜鸟到高手的提示词优化指南‌

如何用“说话的艺术”榨干AI潜力&#xff1f; ——从菜鸟到高手的提示词优化指南‌ 一、什么是好的提示词&#xff1f; 核心公式‌&#xff1a;精准提问 明确需求 限定条件 示范案例 好比让AI帮你买咖啡—— ❌ 差提示&#xff1a;“帮我买杯咖啡”&#xff08;AI可能随便…...

应对高并发的根本挑战:思维转变【大模型总结】

以下是对这篇技术总结的详细解析&#xff0c;以分步说明的形式呈现&#xff0c;帮助理解亿万并发场景下的核心策略与创新思维&#xff1a; 一、应对高并发的根本挑战&#xff1a;思维转变 1. 传统架构的局限 问题&#xff1a;传统系统追求零故障和强一致性&#xff0c;但在海…...

【Java集合】单列集合List详解

参考笔记&#xff1a; java 单列集合List 万字详解&#xff08;通俗易懂&#xff09;_java singlelist-CSDN博客 目录 前言&#xff1a; 一、概述 二、特点 三、使用集合的经典四部曲 四、List接口常用的方法 五、List接口实现类——ArrayList 六、List接口实现类——Ve…...

蓝桥刷题note13(排序)

1.冒泡排序 适用场景&#xff1a; 数据量较小&#xff1a;适用于数据量较小的情况&#xff0c;例如数组长度在 10 以内。 优点 稳定性&#xff1a;冒泡排序是一种稳定的排序算法&#xff0c;相同元素的相对顺序不会改变。 缺点 时间复杂度高&#xff1a;平均和最坏时间复杂度为…...

【AI模型核心流程】(一)大语言模型输入处理机制详解与常见误解辨析

一、引言 大语言模型&#xff08;LLM&#xff09;如GPT、BERT、LLaMA等&#xff0c;已成为自然语言处理领域的核心技术。然而&#xff0c;许多开发者对其底层输入处理机制存在误解&#xff0c;尤其是从自然语言文本到模型可理解的向量表示这一过程。本文将从技术细节出发&…...

如何完整迁移 Git 仓库 ?

Git 已经成为软件开发中版本控制和协作的事实上的标准。有时&#xff0c;开发人员可能需要将整个 Git 存储库 (包括其历史记录、分支和标记) 移动到新的位置或托管服务。在这个全面的指南中&#xff0c;我们将讨论在不丢失任何关键数据或历史记录的情况下无缝地重新定位完整 Gi…...

《在 Ubuntu 22.04 上安装 CUDA 11.8 和 Anaconda,并配置环境变量》

安装 CUDA 11.8 和 Anaconda 并配置环境变量 在本教程中&#xff0c;我们将介绍如何在 Ubuntu 22.04 上安装 CUDA 11.8 和 Anaconda&#xff0c;并配置相应的环境变量。我们还将配置使用 阿里云镜像源 来加速软件包更新。以下是具体步骤。 步骤 1&#xff1a;更新软件源 首先…...

残差神经网络(ResNet)概念解析与用法实例:简洁的图像处理任务

目录 1. 前言 2. ResNet的核心思想 2.1 残差学习 2.2 跳跃连接 3. ResNet的架构 3.1 残差块 3.2 ResNet的整体架构 4. ResNet实例&#xff1a;随便处理处理图像 5. 总结 1. 前言 随着深度学习的发展&#xff0c;神经网络的层数不断增加&#xff0c;但随之而来的是梯度…...

家里网络访问Github有时候打不开,解决办法

1、修改Hosts文件修改法 通过DNS查询工具&#xff08;如&#xff09;获取最新GitHub域名解析IP修改系统hosts文件&#xff08;路径&#xff1a;C:\Windows\System32\drivers\etc\hosts&#xff09;&#xff0c;添加&#xff1a;20.205.243.166 github.com 20.27.177.113 github…...

VirtualBox 配置双网卡(NAT + 桥接)详细步骤

在 VirtualBox 中为 CentOS 虚拟机配置双网卡&#xff08;NAT 桥接&#xff09;&#xff0c;使其既能访问外网&#xff08;NAT&#xff09;&#xff0c;又能与宿主机&#xff08;Windows 10&#xff09;或局域网通信&#xff08;桥接&#xff09;。 步骤 1&#xff1a;关闭虚…...

【2023】ORIGIN或MATLAB 颜色图,等高图,颜色条——需要拟合补全中间的颜色

前言 不是我疯了,就是世界疯了。我不知道究竟是哪一个疯了。瓶口和瓶盖尺寸不符。也许该怪瓶子,也许该怪盖子。但不管怎样,尺寸不符的事实不容动摇——《1Q84》 \;\;\;\;\;\; 有十几二十个导出的曲线数据,其中第一列是频率点,大约1001个,第二列是某种数据,都在0~1之间…...

flutter 专题 七十三Flutter打包未签名的ipa

在Flutter项目开发完成之后&#xff0c;需要把iOS项目拿给第三方&#xff08;如打包机&#xff09;进行签名&#xff0c;那我们首先就需要准备打包好未签名的的ipa包。 打包之前&#xff0c;需要先从第三方获取到iOS证书(.p12)和描述文件(.mobileprovision)&#xff0c;然后然…...

ngx_get_full_name

定义在 src\core\ngx_file.c ngx_int_t ngx_get_full_name(ngx_pool_t *pool, ngx_str_t *prefix, ngx_str_t *name) {size_t len;u_char *p, *n;ngx_int_t rc;rc ngx_test_full_name(name);if (rc NGX_OK) {return rc;}len prefix->len;#if (NGX_WIN32)if (…...

leetcode-代码随想录-链表-链表总结篇

理论基础 链表&#xff1a; 每个节点由两部分组成&#xff1a;数据域和指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff1b;入口节点称为头节点&#xff1b;最后一个节点的指针域指向NULL&#xff08;空指针&#xff09;。 分类&#xff1a; 单链表双链表&…...

如何用Python轻松实现快速复制或剪切文件列表中的所有文件呢?

在程序开发的过程中&#xff0c;处理文件是我们日常工作中一个很重要的环节。想象一下&#xff0c;当你需要把一大堆文件从一个文件夹移动到另一个文件夹时&#xff0c;手工操作真的会让人觉得烦躁对吧&#xff1f;这时&#xff0c;用代码来处理这些烦恼&#xff0c;真是太方便…...