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

Windows提权实战:5种常见漏洞利用与防御指南(附详细命令)

Windows权限提升实战从漏洞原理到防御加固的深度解析在Windows安全领域权限提升始终是攻防对抗的核心战场。无论是渗透测试人员验证系统安全性还是安全运维人员加固防线深入理解提权漏洞的成因、利用手法及防御策略都是构建有效安全体系的关键。这篇文章不会重复那些随处可见的“命令大全”而是从实战视角出发结合系统底层原理为你拆解几种具有代表性的Windows提权路径。我们将重点关注那些在真实环境中高频出现、且防御者常常疏于防范的漏洞点并探讨如何从架构和配置层面系统性削弱攻击面。1. 服务路径与权限配置被忽视的提权入口Windows服务通常以SYSTEM或LocalSystem等高权限账户运行这使得它们成为攻击者眼中的“高价值目标”。服务相关的提权往往源于配置疏忽而非复杂的漏洞利用。1.1 无引号服务路径的深度利用与检测当服务可执行文件的路径包含空格且未被引号包裹时Windows服务控制管理器SCM在解析路径时会采用一个特殊的搜索顺序。这并非漏洞而是一个设计上的特性但结合不当的目录权限就会演变为严重的安全问题。假设一个服务的ImagePath注册为C:\Program Files\MyApp\bin\service host.exeSCM会按以下顺序尝试寻找并执行C:\Program.exeC:\Program Files\MyApp\bin\service.exeC:\Program Files\MyApp\bin\service host.exe如果攻击者对C:\或C:\Program Files\MyApp\bin\目录有写入权限他就可以放置一个名为Program.exe或service.exe的恶意可执行文件。一旦服务重启可能是计划任务、系统更新或管理员手动操作恶意程序便会以服务账户通常是SYSTEM权限执行。实战检测与利用步骤枚举存在风险的服务使用WMIC或PowerShell进行快速筛查。WMIC命令虽然经典但在新系统中可能受限。更推荐使用PowerShell它能提供更丰富的信息。# 使用PowerShell查找无引号服务路径 Get-WmiObject Win32_Service | Where-Object {$_.PathName -notmatch ^ -and $_.PathName -match } | Select-Object Name, DisplayName, State, PathName, StartName这条命令会列出所有路径中包含空格且未用引号包裹的服务并显示其名称、显示名、状态、路径以及运行账户。检查目录权限找到目标服务后需要逐级检查其路径中每个包含空格的目录及其父目录的权限。使用icacls命令是关键。icacls C:\Program Files\MyApp重点关注是否对Authenticated Users、Users或Everyone组授予了(F)完全控制、(M)修改或(W)写入权限。即使只有(W)权限也足以写入文件。利用与权限维持如果发现可写目录传统的做法是放置一个反弹shell的可执行文件。但在实际对抗中这容易被终端安全软件检测。更隐蔽的方式是考虑利用合法的、带有数字签名的系统二进制文件进行“Living Off the Land”离地攻击。例如如果可写目录在系统路径中或服务重启时会加载该目录下的DLL可以尝试DLL劫持。注意通过此方法提权具有被动性需要等待服务重启。在渗透测试中需结合信息收集判断目标服务重启的可能性如是否关联到频繁使用的应用。防御加固策略根本的解决方法是修正服务路径。但作为系统管理员或安全人员需要从更广的层面进行防护修正配置对于识别出的风险服务在注册表中为其ImagePath值添加引号。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服务名将ImagePath修改为C:\Program Files\MyApp\bin\service host.exe权限最小化遵循最小权限原则严格审查服务二进制文件所在目录及其所有父目录的NTFS权限。确保只有SYSTEM、TrustedInstaller或必要的服务账户拥有写入权限移除Users、Authenticated Users等非必要用户的写权限。主动监控使用Sysmon或Windows安全审计策略监控对%SystemRoot%、%ProgramFiles%等关键目录下的可执行文件.exe,.dll,.sys的创建、写入行为特别是由低权限进程发起的操作。1.2 服务权限滥用与AccessChk的实战分析除了文件路径服务本身的访问控制列表ACL配置错误是另一个重灾区。攻击者如果对某个服务拥有过高的权限如SERVICE_CHANGE_CONFIG就可以直接修改该服务的配置例如将其BINARY_PATH_NAME指向恶意程序。微软官方工具AccessChk来自Sysinternals套件是分析服务、注册表、文件等对象权限的利器。它可以帮助我们快速发现配置弱点。利用思路分析假设我们通过AccessChk发现当前用户对SomeVulnerableService拥有SERVICE_ALL_ACCESS权限。accesschk.exe -ucqv YOURDOMAIN\YourUsername SomeVulnerableService这意味着我们可以完全控制该服务。利用流程如下修改服务路径使用sc命令或WMI修改服务的二进制路径。sc config SomeVulnerableService binPath C:\Users\Public\malware.exe警告修改binPath时等号后面必须有一个空格。一个常见的错误是写成binPathC:\...这会导致命令失败。触发执行修改后需要启动或重启服务。如果当前账户有SERVICE_START权限可以直接启动。否则可能需要等待系统重启或管理员操作。sc start SomeVulnerableService恢复与清理执行完操作后为保持隐蔽或避免影响系统稳定性可能需要将服务配置恢复原状。防御视角权限审计定期使用AccessChk或PowerShell的Get-Acl命令审计关键服务的权限分配。确保只有受信任的管理员账户和服务账户拥有修改配置的权限。Get-WmiObject Win32_Service | ForEach-Object { $perms (Get-Acl (Win32_Service.Name $_.Name )).Access; if ($perms.IdentityReference -match BUILTIN\\Users) { $_ } }此脚本需调整可用于查找对Users组授予了权限的服务。启用服务相关审计在组策略gpedit.msc中启用“审核策略 - 审核策略更改”和“审核特权使用”可以在事件查看器中追踪到服务配置被修改的行为事件ID 4700系列。应用控制策略部署Windows Defender应用程序控制WDAC或AppLocker限制只有来自特定位置、拥有特定签名的二进制文件才能以高权限运行可以有效阻断恶意程序被服务加载。2. 安装程序与注册表隐蔽的提权通道Windows InstallerMSI是软件包管理的重要组件其行为受注册表策略控制。错误的策略设置会为系统打开一扇危险的后门。2.1 AlwaysInstallElevated 策略的风险与验证当以下两个注册表项的值均被设置为1时任何用户包括普通用户执行的MSI安装包都会自动以SYSTEM权限运行。HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevatedHKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated这个策略本意是方便企业环境下的软件部署但若配置不当将导致严重的权限提升漏洞。漏洞验证与利用检查策略状态reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated如果两者都返回0x1则系统存在风险。制作恶意MSI包可以使用msiexec配合自定义脚本来添加用户或执行命令。更直接的方法是使用Metasploit的msfvenom生成一个添加管理员的MSI。# 在攻击机上生成MSI msfvenom -p windows/adduser USERBackdoorAdmin PASSPssw0rd123! -f msi -o setup.msi将生成的setup.msi上传到目标机器。执行提权在目标机器上以普通用户身份运行msiexec /quiet /qn /i C:\path\to\setup.msi参数说明/quiet: 安静模式无用户交互。/qn: 无GUI模式。 执行成功后系统会添加一个名为BackdoorAdmin的管理员账户。防御与排查策略审查立即检查上述两个注册表项。在标准用户环境中它们不应被设置或者值应为0。这项策略通常通过组策略GPO配置因此需要检查相关的GPO设置。最小化安装权限除非绝对必要否则不要启用AlwaysInstallElevated策略。软件部署应通过标准的软件分发系统如SCCM、Intune或由管理员权限执行。监控MSI执行通过Sysmon或Windows事件日志事件ID 11707, 11708来自Windows Installer监控非常规位置或由低权限用户发起的MSI安装行为。2.2 自动化部署文件中的凭证泄露在大型企业环境中自动化系统部署如使用应答文件Unattend.xml或组策略首选项GPP曾是常见的做法但也曾留下严重的安全隐患。风险文件与位置文件类型常见路径风险内容Unattend.xml/sysprep.xmlC:\Windows\Panther\,C:\Windows\Panther\Unattend\,C:\Windows\System32\sysprep\可能包含本地账户的密码Base64编码的AES加密但密钥公开。Groups.xml(GPP)\\DOMAIN\SYSVOL\DOMAIN\Policies\过去用于在域内推送本地管理员密码密码使用AES加密但密钥已公开。攻击者如何发现攻击者在获取初始立足点后会自动化搜索这些文件。# 搜索包含密码关键词的XML文件 Get-ChildItem -Path C:\ -Include *.xml -Recurse -ErrorAction SilentlyContinue | Select-String -Pattern Password # 搜索SYSVOL共享中的Groups.xml dir \\DOMAIN\SYSVOL\DOMAIN\Policies\ -Recurse -Include Groups.xml -ErrorAction SilentlyContinue防御措施清理遗留文件在生产系统中应彻底删除不再需要的自动化部署配置文件。更新组策略实践绝对不要使用GPP来推送具有高权限的账户密码。微软早已发布安全公告MS14-025并移除了该功能。对于需要管理的本地账户应使用LAPS本地管理员密码解决方案等现代方案。文件系统权限确保SYSVOL目录的访问权限受到严格控制仅限域管理员和系统账户访问。定期安全扫描将搜索此类敏感配置文件纳入常规安全巡检或漏洞扫描的范畴。3. 内核与进程交互高级提权技术剖析当常规的服务和配置漏洞无法利用时攻击者可能会转向更底层的系统机制例如利用命名管道进行令牌模拟或者滥用调试权限进行令牌窃取。3.1 命名管道与令牌模拟Token Impersonation命名管道是一种进程间通信IPC机制。高权限进程如服务创建的命名管道低权限进程可以连接。如果高权限进程在安全上下文中不当调用了ImpersonateNamedPipeClient等函数连接它的客户端进程就有可能模拟高权限的安全令牌。技术核心SeImpersonatePrivilege或SeAssignPrimaryTokenPrivilege权限。在Windows中许多服务账户如NETWORK SERVICE、LOCAL SERVICE以及具有这些权限的用户可以模拟客户端令牌。经典利用场景 - Print Spooler服务 Print Spooler服务运行在SYSTEM权限下并默认启用了SeImpersonatePrivilege。历史上著名的“PrintNightmare”漏洞CVE-2021-1675 / CVE-2021-34527就是通过欺骗Spooler服务加载恶意DLL并利用其高权限进行令牌模拟最终实现权限提升。防御策略权限剥离审查服务账户的权限非必要不授予SeImpersonatePrivilege或SeAssignPrimaryTokenPrivilege。可以通过组策略“用户权限分配”进行管理。服务加固对于非必需的服务尤其是像Print Spooler这类历史漏洞较多的服务应考虑将其禁用或设置为“仅手动启动”。监控管道创建与模拟使用Sysmon等工具监控命名管道的创建事件ID 17, 18和令牌模拟行为事件ID 4688中的特权列表变化寻找异常模式。3.2 调试权限与令牌窃取Token Theft如果一个进程拥有SeDebugPrivilege权限它就能打开任何其他进程包括SYSTEM进程的句柄并读取其内存、注入代码或复制其安全令牌。利用条件攻击者已获得一个具有SeDebugPrivilege权限的进程或用户上下文默认情况下本地管理员组成员拥有此权限但需要启用。目标系统上存在以SYSTEM或高权限用户如域管理员运行的进程。利用过程简述启用调试权限在具有管理员权限的进程中程序化地启用SeDebugPrivilege。// C 代码片段启用 SeDebugPrivilege BOOL EnableDebugPriv() { HANDLE hToken; LUID luid; TOKEN_PRIVILEGES tkp; OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, hToken); LookupPrivilegeValue(NULL, SE_DEBUG_NAME, luid); tkp.PrivilegeCount 1; tkp.Privileges[0].Luid luid; tkp.Privileges[0].Attributes SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, tkp, sizeof(tkp), NULL, NULL); CloseHandle(hToken); return GetLastError() ERROR_SUCCESS; }打开高权限进程例如打开lsass.exe本地安全机构子系统服务进程。复制进程令牌使用OpenProcessToken和DuplicateTokenEx复制目标进程的令牌。创建新进程使用CreateProcessWithTokenW或CreateProcessAsUser以复制的令牌创建一个新的进程如cmd.exe新进程将继承高权限。防御措施限制调试权限在安全要求高的环境中通过组策略限制SeDebugPrivilege的分配仅授予绝对必要的账户。保护关键进程使用受保护的进程Protected Process, PPL机制。例如从Windows 8.1开始lsass.exe默认以受保护进程PsProtectedSignerWinTcb-Light运行这极大地增加了非SYSTEM权限进程对其进行代码注入或令牌窃取的难度。凭证防护启用“Credential Guard”功能它利用基于虚拟化的安全VBS将lsass.exe中的凭证如NTLM哈希、Kerberos票据隔离到安全的虚拟容器中即使lsass.exe进程被攻破攻击者也难以提取明文密码或哈希。行为监控监控对lsass.exe等关键系统进程的PROCESS_VM_READ或PROCESS_QUERY_INFORMATION访问尝试这通常是凭证窃取攻击的前兆。4. 第三方组件与数据库非典型提权路径系统安全不仅取决于操作系统本身其上运行的第三方应用和数据库也是攻击面的一部分。配置不当的MySQL数据库就是典型案例。4.1 MySQL提权UDF与启动项在获得MySQL数据库一定权限通常是FILE权限和较高的数据库用户权限后攻击者可能尝试通过数据库功能进行系统级提权。UDF用户自定义函数提权原理 MySQL支持用户加载自定义的共享库Windows下为DLL来扩展函数功能。如果攻击者能将一个包含执行系统命令函数的恶意DLL写入MySQL的插件目录并创建UDF就能通过执行SQL语句来调用系统命令。关键步骤与命令确认插件目录与FILE权限SHOW VARIABLES LIKE %plugin%; SELECT file_priv FROM mysql.user WHERE user CURRENT_USER();写入恶意DLL需要secure_file_priv系统变量为空或指向可写路径。历史上可以通过SELECT ... INTO DUMPFILE将DLL写入插件目录。现代MySQL版本5.6.34默认secure_file_priv为NULL限制了此操作。创建UDF并执行命令CREATE FUNCTION sys_exec RETURNS STRING SONAME udf.dll; SELECT sys_exec(whoami);启动项提权如果具有FILE权限且知道启动项路径可以向启动文件夹写入VBS或BAT脚本等待系统或用户重启后自动执行。SELECT start /min cmd.exe /c net user backdoor Pssw0rd /add INTO OUTFILE C:\\Users\\All Users\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\backdoor.bat;防御建议最小权限原则为MySQL服务账户分配最低必要的系统权限。避免使用SYSTEM或Administrator账户运行MySQL服务。安全配置设置secure_file_priv为一个特定的、受控的目录或直接设置为NULL以禁用LOAD DATA INFILE和SELECT ... INTO OUTFILE。移除MySQL服务账户对关键系统目录如启动目录、系统目录的写入权限。禁用不必要的MySQL功能如CREATE FUNCTION如果业务不需要UDF。网络隔离将数据库服务器置于独立的网络区域严格限制访问来源避免其直接暴露在互联网或不受信任的网络中。定期审计监控MySQL中CREATE FUNCTION语句的使用以及非常规位置的文件创建行为。5. 构建纵深防御体系从单点加固到系统免疫了解了具体的攻击手法后我们需要构建一个层次化的防御体系让单点的配置错误不至于导致整个防线崩溃。第一层基础安全加固及时更新与补丁管理这是防御已知漏洞最有效、成本最低的方法。建立严格的补丁管理流程确保操作系统、数据库、中间件及所有应用软件及时更新。最小权限原则为每一个服务、每一个用户、每一个进程分配其完成任务所必需的最小权限。定期审查和清理冗余账户与权限。强化本地策略通过组策略或本地安全策略禁用不必要的服务如Telnet、SNMP、关闭未使用的端口、配置强密码策略和账户锁定策略。第二层攻击面减少应用控制部署WDAC或AppLocker建立应用程序白名单。只允许经过批准、来自可信位置的程序执行从根本上阻止未知恶意代码的运行。用户账户控制UAC确保UAC处于最高级别始终通知。虽然UAC不是安全边界但它能有效增加攻击者进行“静默”提权的难度。禁用或限制高危功能例如在不需要的服务器上禁用Windows Script Host (WSH)、PowerShell的受限语言模式、或通过组策略限制Office宏的执行。第三层检测与响应启用详细日志记录配置Windows审计策略记录成功和失败的关键事件如账户登录、特权使用、进程创建、策略更改等。将日志集中收集到SIEM系统。部署终端检测与响应EDREDR工具能够监控进程行为、网络连接、文件操作等利用行为分析和威胁情报发现绕过传统防病毒的提权攻击链。威胁狩猎基于已知的提权技术TTPs战术、技术和程序主动在环境中搜索相关痕迹。例如搜索短时间内服务配置被修改的记录、异常位置的MSI文件执行、对lsass.exe进程的访问等。第四层高级防护启用Credential Guard保护内存中的凭证防止Mimikatz等工具直接提取哈希或密码。使用受保护的进程确保lsass.exe等关键安全进程运行在受保护模式。网络分段与微隔离即使一台服务器被攻破通过严格的网络访问控制也能限制攻击者横向移动和访问关键资产的能力。安全是一个持续的过程而非一劳永逸的状态。Windows提权技术也在不断演化从早期的简单配置滥用发展到如今结合多种漏洞的复杂攻击链。作为防御者我们需要深入理解系统原理坚持最小权限和纵深防御的原则并建立有效的监控与响应机制。在实际工作中我习惯定期使用像PowerShell Empire的PowerUp模块或WinPEAS这样的自动化脚本来巡检服务器它们能快速发现常见的配置弱点但这只是起点。真正的安全源于对每一个细节的审慎配置和对整个系统安全态势的持续关注。

相关文章:

Windows提权实战:5种常见漏洞利用与防御指南(附详细命令)

Windows权限提升实战:从漏洞原理到防御加固的深度解析 在Windows安全领域,权限提升始终是攻防对抗的核心战场。无论是渗透测试人员验证系统安全性,还是安全运维人员加固防线,深入理解提权漏洞的成因、利用手法及防御策略&#xff…...

效率提升:基于快马AI自动化监控与修复战网更新服务睡眠模式

最近在和朋友联机打游戏时,经常遇到一个烦人的问题:战网客户端(Battle.net)的更新服务时不时就“睡着了”,显示“战网更新服务进入了睡眠模式,正尝试唤醒它”。每次都得手动去任务管理器里找服务、重启&…...

OpenWrt UCI 命令行实战:从网络配置到Luci管理界面部署

1. 初识UCI:OpenWrt的配置“总开关” 刚接触OpenWrt的朋友,第一次登录到那个黑乎乎的命令行界面时,多半会有点懵。没有熟悉的图形化设置页面,只有一个闪烁的光标,这路由器该怎么设置?别急,这正是…...

UI-TARS-desktop快速上手:无需代码实现浏览器自动化控制

UI-TARS-desktop快速上手:无需代码实现浏览器自动化控制 你是不是也厌倦了每天在浏览器里重复那些枯燥的点击、复制、粘贴操作?比如每天都要登录后台查看数据,或者在不同网站间来回切换收集信息。这些工作不仅耗时,还容易出错。 …...

FireRedASR Pro命令行工具开发:快速脚本调用与批量处理

FireRedASR Pro命令行工具开发:快速脚本调用与批量处理 你是不是也遇到过这样的场景?手头有一堆音频文件需要转成文字,一个一个打开软件、上传文件、点击识别,效率低得让人抓狂。或者,你想把语音识别功能集成到自己的…...

新手必看:在快马平台用AI生成飞牛漏洞靶场,零基础掌握逻辑漏洞

对于刚接触网络安全的朋友来说,逻辑漏洞常常让人感觉“看不见摸不着”,不像SQL注入或XSS那样有直接的攻击载荷。最近我在学习“飞牛漏洞”这类典型的逻辑缺陷时,就遇到了这个难题:光看理论文章,总觉得隔了一层纱&#…...

Nunchaku-flux-1-dev数据库应用:MySQL管理海量生成图像与元数据

Nunchaku-flux-1-dev数据库应用:MySQL管理海量生成图像与元数据 想象一下,你的团队每天用Nunchaku-flux-1-dev生成成千上万张产品图、营销素材或者设计稿。一开始,大家可能把图片随便存在电脑文件夹里,用Excel记一下生成参数。但…...

ESP32-C61 AT命令全解析:系统配置、Flash/NVS管理与Wi-Fi 6控制

ESP32-C61 AT 命令深度解析:系统级配置、存储管理与 Wi-Fi 控制全指南 在嵌入式物联网设备开发中,AT 命令作为轻量级、标准化的串行通信接口,承担着连接控制、状态查询、固件维护与底层硬件配置等关键职责。ESP32-C61 作为乐鑫新一代支持 Wi-Fi 6 和 Bluetooth LE 5.3 的 S…...

一键部署雪女-斗罗大陆-造相Z-Turbo:快速开启AI绘画之旅

一键部署雪女-斗罗大陆-造相Z-Turbo:快速开启AI绘画之旅 想亲手画出《斗罗大陆》里那位清冷绝美的雪女吗?想用AI把你的文字描述瞬间变成一张惊艳的二次元画作吗?今天,我们不用学习复杂的模型训练,也不用配置繁琐的Pyt…...

SenseVoice-small WebUI高级用法:自定义热词增强特定领域识别

SenseVoice-small WebUI高级用法:自定义热词增强特定领域识别 1. 引言:当语音识别遇到专业术语 想象一下,你正在用语音识别工具整理一场医学研讨会的内容。医生们讨论着“冠状动脉粥样硬化”、“经皮冠状动脉介入治疗”这些专业术语&#x…...

OpenClaw 是什么

如果你用过ChatGPT,你会知道它本质上是一个问答系统:你问,它答。OpenClaw不一样。它是一个AI Agent平台,能连接20消息渠道(WhatsApp、Telegram、飞书、钉钉、Discord等),主动执行任务、管理你的…...

Nomic-Embed-Text-V2-MoE 内网穿透方案:安全访问私有化部署的模型API

Nomic-Embed-Text-V2-MoE 内网穿透方案:安全访问私有化部署的模型API 最近有不少朋友在部署完Nomic-Embed-Text-V2-MoE这类文本嵌入模型后,遇到了一个挺实际的问题:模型部署在公司内网或者自己的私有服务器上,性能是稳了&#xf…...

Z-Image-Turbo进阶技巧:用括号和否定词让你的图片更出彩

Z-Image-Turbo进阶技巧:用括号和否定词让你的图片更出彩 你用过Z-Image-Turbo,觉得它快、稳、出图质量不错。但有没有那么一瞬间,你看着生成的图片,心里会想:“嗯,是那个意思,但好像还差那么一…...

【国家级等保2.0适配指南】:MCP 2.0协议安全规范12项强制校验项报错映射表(含CVE-2024-XXXX漏洞规避方案)

第一章:MCP 2.0协议安全规范报错解决方法总览MCP 2.0(Managed Communication Protocol 2.0)协议在实施TLS双向认证、JWT签名验证及密钥轮换策略时,常因配置偏差或运行时环境不一致触发安全规范校验失败。典型报错包括 ERR_MCP_SIG…...

cv_unet_image-colorization效果展示:同一场景不同年代黑白照AI上色后时间轴色彩演化

cv_unet_image-colorization效果展示:同一场景不同年代黑白照AI上色后时间轴色彩演化 1. 引言:当黑白记忆遇见彩色未来 你有没有翻过家里的老相册?那些泛黄的黑白照片里,藏着爷爷奶奶年轻时的模样,记录着城市曾经的街…...

all-MiniLM-L6-v2多场景落地:客服问答匹配、合同条款相似性分析、简历筛选

all-MiniLM-L6-v2多场景落地:客服问答匹配、合同条款相似性分析、简历筛选 你是不是也遇到过这些问题?客服系统里,用户问“怎么退款”,机器人却回答“如何购买”;审阅合同时,需要手动对比几十页的条款&…...

FreeRTOS开发和裸机开发的区别

目录 1.裸机程序设计模式 1.1 轮询模式 示例代码如下: 1.2 前后台 示例程序如下: 在这个场景里,给同事回复信息非常及时: 1.3 定时器驱动 示例代码如下: 1.4 基于状态机 可以使用状态机来解决这个缺点&#…...

C#程序语言学习20260312

抽象类:就像“动物”这个概念你见过纯纯的“动物”吗?没有。你见到的都是具体的“狗”、“猫”、“鸟”。 “动物”就是一个抽象的概念,它定义了一些所有动物都应该有的东西(比如“会动”、“会叫”),但具体…...

蓝桥杯算法精讲:贪心算法的简单应用与题解

目录前言一、贪心算法1.1 简单贪心1.1.1 货舱选址1.1.2 最大子段和1.1.3 纪念品分组1.1.4 排座椅1.1.5 矩阵消除游戏结语🎬 云泽Q:个人主页🔥 专栏传送入口: 《C语言》《数据结构》《C》《Linux》《蓝桥杯系列》⛺️遇见安然遇见你&#xff0…...

简单易用:DDColor黑白照片修复,ComfyUI可视化操作,无需专业修图技能

简单易用:DDColor黑白照片修复,ComfyUI可视化操作,无需专业修图技能 你是否曾翻出一张泛黄的黑白老照片,看着祖辈模糊的笑容或童年模糊的街景,希望它们能重焕光彩?过去,这需要专业的修图技能和…...

LiuJuan20260223Zimage构建内网知识库:安全环境下的智能问答应用

LiuJuan20260223Zimage构建内网知识库:安全环境下的智能问答应用 1. 引言:当智能问答遇上数据安全 想象一下,你在一家金融机构或政府部门工作,每天需要从堆积如山的内部政策文件、研究报告或历史档案里查找信息。传统的搜索工具…...

黄仁勋联手OpenAI前高管,1吉瓦超级算力明年开闸

1吉瓦,数百亿美金。 刚刚,前OpenAI高管、硅谷传奇女性创业者Mira Murati和她的初创公司,与四万亿芯片帝国掌舵人黄仁勋达成了一项「吉瓦级」的长期战略合作! 英伟达CEO黄仁勋(左)与Thinking Machines Lab创…...

方法区、永久代、元空间:一文理清 JVM 内存区域核心演进

JVM内存模型是Java进阶的核心知识点,而方法区(及其实现:永久代、元空间)更是面试和生产环境调优的高频考点。很多开发者容易混淆“方法区(规范)”与“永久代/元空间(实现)”的关系&a…...

C语言中的分支语句

食用指南:本篇文章介绍了c语言中的if、switch分支语句,偏基础向,可用于复习或者初学者自学。--欢迎各位交流--C语言的结构可分为:顺序结构、选择结构、循环结构。我们可以使用if、switch语句来实现分支结构(也就是所谓…...

『NAS』金三银四,在NAS部署AI简历神器-JadeAI

点赞 关注 收藏 学会了 💡整理了一个 NAS 专属玩法专栏,感兴趣的工友可以戳这里关注 👉 《NAS邪修》 用一段话简单介绍一下 JadeAI 本次教程以飞牛 NAS 为例部署 JadeAI ,其他品牌 NAS 的操作步骤基本一致,放心跟着…...

STM32CubeMx 配置三相互补PWM + 死区时间计算

在使用STM32作为控制器去开发电机FOC的时候,往往需要配置三相互补PWM的死区时间,如何快速确认死区时间的范围和配置呢? (1)死区的概念: 在STM32中死区时间是由 CKD[1:0] 和 DTG[7:0] 这两个寄存器共同决定,CKD其实就是…...

深入解析密钥协商机制:从RSA到SM2的实战应用

1. 密钥协商:为什么你的聊天记录别人看不懂? 你有没有想过,当你在网上购物、和朋友聊天、或者登录邮箱时,那些在网络上跑来跑去的数据包,为什么不怕被别人“偷看”呢?比如,你输入的银行卡密码&a…...

OpenBMC sdbusplus接口实战:从服务注册到多接口管理

1. 初识sdbusplus:你的BMC服务开发起点 如果你正在为OpenBMC开发一个新的管理功能,比如监控机箱温度、控制风扇转速,或者实现一个自定义的硬件健康检查服务,那么你迟早要和D-Bus打交道。在OpenBMC的世界里,sdbusplus就…...

【交互式分割】从零到一:基于Mask Guidance的迭代训练实战与性能优化

1. 为什么我们需要Mask Guidance?从交互式分割的痛点说起 想象一下,你正在用Photoshop抠图,面对一张毛发边缘复杂的小猫照片,你用魔棒工具点一下,结果要么选多了背景,要么漏掉了毛发尖。你不得不反复调整容…...

深入解析ACK、NACK与REX:网络通信中的重传机制与优化策略

1. 从“收到请回复”说起:网络世界的确认与重传 不知道你有没有玩过那种需要“收到请回复”的群聊。你发出一条重要通知,如果没人吭声,你心里就会打鼓:他们到底看没看到?这时候,你可能会所有人,…...