Vista/Win7下普通权限进程动态提升权限

C#调用Google Earth COM实现动态缩放、鼠标交互与彩色截图 Google Earth COM接口是Windows平台下将三维地理可视化深度集成进.NET桌面应用的关键技术路径,其本质是通过Win32 API与跨进程消息机制桥接托管代码与原生渲染引擎。理解COM对象的STA线程模型、窗口消息循环(如WM_SIZE/WM_PAINT)及设备上下文(DC)共享原理,是解决动态适配、精准坐标捕获和跨权限截图等工程难题的基础。该方案在地质勘探、应急指挥等需离线强交互的行业系统中具备不可替代性,尤其适用于已固化技术栈但亟需增强空间分析能力的传统WinForm项目。本文聚焦C#对 阅读详情

本文出自 “碧海笙箫” 博客,请务必保留此出处http://pyhcx.blog.51cto.com/713166/197073


一、前提

在Vista/Win7下,加强了对安全的管理,对注册表修改,系统目录的文件操作,都需要管理员权限才能完成(当然虚拟存储机制,表面上也相当于能操作)。所以,对于程序中有相关操作的,这时候,就要求我们的程序必须拥有管理员权限。通过mainfest文件,我们可以让程序总是需要管理员权限执行,但是,这将导致程序每次运行时,都需要弹出UAC框老骚扰用户,另外,有时候我们的程序只是在某一些时刻才需要管理员权限来运行,大部分时候只要普通权限就可以了。鉴于此,我们有必要让我们的程序,在运行的过程中,动态的来提升权限。


二、原理方法

要动态的提升程序的权限,很遗憾的是,Microsoft并没有提供这样的方法(至少我没找到),也就是,程序的运行权限,在启动时就已经决定了。于是我们想要动态提升权限,理论上是不可能的!


本文章介绍一种方法,来模拟实现这样的功能,让整个程序跑起来,就像是在动态提升权限一样。只要在需要执行管理员权限的操作时,以管理员权限启动一个新进程,把操作交给新进程去完成。启动的新进程,最好就是本进程的新实例,这样在以管理员权限启动的新进程弹出的UAC框上可以看到程序名和数字签名,都能表示就是同一个程序,来达到动态“提升”进程权限的效果。


三、实现


1. 进程启动时,根据命令行参数来区分,是按正常模式启动还是提升权限之后的模式启动。


2. 本身进程与高权限进程之间,产用Message:WM_COPYDATA进行通信,由于Vista/Win7下,限制了不同权限进程之间的发送消息,需要向Window Message Filter添加WM_COPYDATA。

// 允许Vista/Win7下,不同权限进程间发送消息:WM_COPYDATA 

Cpp代码 
  1. typedef BOOL (WINAPI FAR *ChangeWindowMessageFilter_PROC)(UINT,DWORD);  
  2. ChangeWindowMessageFilter_PROC m_pfnChangeWindowMessageFilter;   
  3. m_pfnChangeWindowMessageFilter = (ChangeWindowMessageFilter_PROC)::GetProcAddress (::GetModuleHandle(_T("USER32")),"ChangeWindowMessageFilter");   
  4. if (m_pfnChangeWindowMessageFilter)   
  5. {   
  6.     m_pfnChangeWindowMessageFilter(WM_COPYDATA, 1/*Add*/);   
  7. }  
 

 


3. 以高权限启动新进程

Cpp代码 
  1. // 启动Shell   
  2. OSVERSIONINFOEX OSVerInfo;   
  3. OSVerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);   
  4. if(!GetVersionEx((OSVERSIONINFO *)&OSVerInfo))   
  5. {   
  6.          OSVerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);   
  7.          GetVersionEx((OSVERSIONINFO *)&OSVerInfo);   
  8. }   
  9.   
  10. TCHAR atszVerb[16];   
  11. if(OSVerInfo.dwMajorVersion >= 6) // Vista 以上   
  12. {   
  13.          _tcscpy(atszVerb,_T("runas"));   
  14. }   
  15. else   
  16. {   
  17.          _tcscpy(atszVerb,_T(""));   
  18. }   
  19.   
  20. USES_CONVERSION;   
  21.   
  22. SHELLEXECUTEINFO se ;   
  23. memset(&se,0,sizeof(SHELLEXECUTEINFO));   
  24. se.cbSize = sizeof(SHELLEXECUTEINFO);   
  25. se.lpVerb = atszVerb;   
  26. se.lpFile = W2T(m_bstrShellExe);   
  27. se.lpParameters = atszBootCmd;   
  28. se.nShow = SW_HIDE ;   
  29. se.fMask = SEE_MASK_NOCLOSEPROCESS ;   
  30.   
  31. if(ShellExecuteEx(&se))   
  32. {   
  33.         // 启动成功   
  34. }   
  35. else   
  36. {   
  37.         // 启动失败,可能UAC没有获得用户许可   
  38. }  
 

 


4. 发送消息执行命令

本进程,通过FIndWindow,查找到高权限进程的主窗口,并向该窗口发送WM_COPYDATA下消息;同时高权限进程处理WM_COPYDATA,根据传送到来的数据,执行相应的功能。


四、Demo

附件所带Demo,提供了一个已经封装好的COM组件(AdminShell.dll),来实现同步/异步的高权限命令执行模式的命令发送模块。同时提供了一个Shell.h头文件,封装实现了命令接收模块。我们只需要实现命令处理函数即可。

Demo实现了同步模式的命令执行,一步模式,只需要响应AdminShell的连接点事件即可。

Demo用VS2008编译,并在Win7下测试通过。

Windows XP Mode深度解析:Win7时代的无缝兼容技术 虚拟机是基础抽象层,而运行时兼容环境(Runtime Compatibility Environment)才是解决遗留系统迁移难题的核心范式。其原理在于通过增强会话协议、双向设备重定向与应用级集成三重机制,在宿主系统中实现 guest 应用的原生级交互体验。这类技术不仅承载着兼容性保障的关键价值,更深刻影响了现代操作系统如WSL、Android子系统等的设计逻辑。典型应用场景包括VB6/Access架构的老财务软件、工业控制驱动、医疗影像设备接口等无法重构的legacy application。本文聚焦Wi 阅读详情

相关推荐

Windows 7升级安装实录:Dell 1420不重装软件的兼容性迁移指南

操作系统升级并非简单替换,而是涉及固件(BIOS/SLIC)、驱动模型、激活机制与用户态环境的系统级协同。Windows 7作为Vista的深度演进,在内存管理、UAC控制、WDDM显示架构和库(Libraries)抽象层等方面实现关键突破,其技术价值在于提升旧硬件的响应效率与多任务稳定性。典型应用场景包括OEM笔记本的平滑迁移、存量办公软件生态的延续、以及受限于硬盘空间与重装成本的生产环境升级。本文聚焦Windows 7升级安装过程中的真实挑战——如SLIC 2.1固件适配、驱动回滚策略、Windows.

baochuanying9531的博客 574

Windows提权_Windows证书对话框权限提升漏洞(CVE_2019-1388)

0x00 简介 这个漏洞是在UAC(用户账户控制)机制中发现的,在默认情况下,Windows在一个单独的桌面(安全桌面)上显示所有UAC提示,提示的本身是由一个名为consent.exe的可执行文件生成,以系统用户权限(NT AUTHORITY\SYSTEM)运行。因为用户可以和UAC进行交互,所有严格限制UAC交互页面是很有必要的,否则低权限的用户可以通过UI操作的迂回路径获取到系统执行权限。 0x01 漏洞利用 Win7系统(我只复现了win7,大佬说server08、12均存在此漏洞) ①系统安装

dust_hk的博客 1170

Windows提权实战指南:从信息收集到权限提升的完整路径

权限提升是网络安全攻防演练中的核心环节,它涉及从低权限账户获取系统更高控制权的过程。其基本原理在于利用操作系统或应用软件在身份验证、访问控制或代码执行层面的缺陷。这项技术的价值在于帮助安全人员验证系统防御纵深,识别权限边界突破风险。在渗透测试、红蓝对抗和系统安全评估等场景中,掌握本地提权方法至关重要。本文聚焦Windows环境,深入剖析了包括内核漏洞利用、令牌模拟、服务配置滥用在内的多种主流提权技术。文中详细拆解了如“烂土豆”(Rotten Potato)这类经典漏洞的利用链,并强调了全面的系统信息收集是成

weixin_34176694的博客 330

java win7 管理员权限_Win7系统如何一键取得管理员权限

您可能感兴趣的话题:Win7核心提示:我们在使用微软研发的Win7系统时,往往都会遇到需要管理员权限才能打开的软件或者文件。每次都需要赋予管理员权限未免太过麻烦,那么该如何操作才能够一键获得管理员权限呢?我们在使用微软研发的Win7系统时,往往都会遇到需要管理员权限才能打开的软件或者文件。每次都需要赋予管理员权限未免太过麻烦,那么该如何操作才能够一键获得管理员权限呢?解决方法:方法一:创建批处理r...

weixin_35582019的博客 234

Windows UAC绕过技术演进:从白名单劫持到COM接口滥用

用户账户控制(UAC)是Windows操作系统的核心安全机制,通过在进程执行高权限操作时进行权限隔离与提升确认,有效遏制恶意软件的静默提权。其原理基于完整性级别(IL)和访问令牌的权限模型,通过白名单机制实现可信程序的自动提升。在工程实践中,UAC绕过技术经历了从早期的DLL劫持和路径伪装,到深度利用COM组件提升接口的演变,攻击者通过挖掘系统内部合法的提权通道,实现了在不触发标准提示框的情况下获取管理员权限。这些技术不仅揭示了Windows安全架构的设计哲学与信任边界,也为系统管理员构建纵深防御体系提供了

weixin_34242509的博客 406

Windows 7兼容性机制YiDiscovery深度解析与实战指南

Windows兼容性机制是保障老旧应用程序在新系统中稳定运行的基础技术,其核心原理涉及用户态钩子、Manifest动态注入、API重定向与沙盒化路径映射等关键技术。这类机制不仅承载着向后兼容的工程价值,更体现了操作系统安全演进过程中‘最小干预’的设计哲学。在Windows 7中,Application Compatibility Assistant背后的YiDiscovery引擎正是这一理念的典型实现——它不修改内核、不注入驱动,却通过静默诊断与上下文感知持续优化运行环境。该机制广泛应用于工业控制、医疗设备

didi9310的博客 430

win7如何关闭uac(图文详解)

如何关闭Windows7 UAC?二种方法进入“UAC设置界面”: 方法1:开始→控制面板→查看方式:大图标→操作中心→更改用户账户控制设置→把滑块移到最下面。 方法2:“开始”菜单→点击“账户名称头像图标”→更改用户账户控制设置→把滑块移到最下面。 调出UAC界面后,只要把滑块拉到最下面,即把UAC功能关闭了,重新启动计算机后生效!下面贴出第2种方法的详细步骤图片:

欧辰的专栏 2332

从MS16-016漏洞解析内核提权原理与纵深防御实践

缓冲区溢出是软件安全领域的经典漏洞类型,其原理在于程序对用户输入数据缺乏严格的边界检查,导致数据写入超出预分配的内存区域,从而可能覆盖相邻的关键数据或指令指针。在操作系统内核中,此类漏洞的危害性被放大,攻击者可通过精心构造的输入触发溢出,进而劫持控制流并执行恶意代码,最终实现从普通用户权限到系统最高权限的非法提升,这对系统安全构成严重威胁。从技术价值看,深入理解内核级漏洞的利用链,是构建有效防御体系、实施精准威胁检测的基础。在应用场景上,此类漏洞常被用于渗透测试中的权限提升环节,也是红蓝对抗与系统安全加固的

ciya3282的博客 472

windows下c++提高程序权限

// If the caller has enabled the SeDebugPrivilege privilege, // the requested access is granted regardless of the contents of the security descriptor. // 如果开启了SeDebugPrivilege,则不用管安全说明符

fuck487的博客 8889

Windows 7 PSR故障记录原理与企业级实战应用

问题步骤记录器(PSR)是一种基于事件钩子与GDI+截图的轻量级故障复现工具,其核心原理是捕获鼠标消息、窗口状态和时间戳,生成自包含的.mht报告。它不依赖视频编码,规避GPU兼容性风险,以极低资源占用(CPU<3%,内存~12MB)保障老旧终端稳定性,特别适用于政企内网、工控系统等禁用第三方软件的隔离环境。技术价值在于将模糊的用户描述转化为可追溯、可离线打开、带坐标高亮的结构化证据,支撑远程诊断与自动化分析。本文深入解析PSR的截图机制、.mht封装逻辑、命令行定制及SCCM/PowerShell集成方案

diedangxiang4092的博客 532

Windows系统编程实战指南:C/C++与PowerShell底层调试精要

Windows系统编程是面向企业级运维、传统工控及遗留系统维护的核心技术能力,其本质在于深入理解Win32 API、进程/服务模型、注册表与COM交互等底层机制。不同于跨平台抽象层,它强调可验证性、环境确定性与错误码驱动的调试逻辑——例如UAC虚拟化导致的路径重定向、Session 0隔离引发的GUI交互失败、或CoInitializeEx在服务线程中静默返回RPC_E_CHANGED_MODE(0x80010106)等典型问题。这类知识无法从通用教程获取,而高度依赖真实场景复现、ETW日志分析与ProcM

SailingAptech的专栏 463

不是管理员权限的进程启动一个具备管理员权限的EXE

一、前提      在Vista/Win7下,加强了对安全的管理,对注册表修改,系统目录的文件操作,都需要管理员权限才能完成(当然虚拟存储机制,表面上也相当于能操作)。所以,对于程序中有相关操作的,这时候,就要求我们的程序必须拥有管理员权限。通过mainfest文件,我们可以让程序总是需要管理员权限执行,但是,这将导致程序每次运行时,都需要弹出UAC框老骚扰用户,另外,有时候我们的程序只是在某一

davidsu33的专栏 2740

vuecil3+版本下,兼容ie等不支持es6的低版本浏览器

*综上,完成兼容性涉及到的配置的文件有,对应在页面中查看代码,就不单独附代码了:main.js。

yhr0322的博客 832

Win7下普通权限进程动态提升权限

一、前提      在Vista/Win7下,加强了对安全的管理,对注册表修改,系统目录的文件操作,都需要管理员权限才能完成(当然虚拟存储机制,表面上也相当于能操作)。所以,对于程序中有相关操作的,这时候,就要求我们的程序必须拥有管理员权限。通过mainfest文件,我们可以让程序总是需要管理员权限执行,但是,这将导致程序每次运行时,都需要弹出UAC框老骚扰用户,另外,有时候我们的程序只是在某一

davidsu33的专栏 2662

生信实战|EffectorP3.0在植物病原菌效应子预测中的高效应用

本文详细介绍了EffectorP 3.0在植物病原菌效应子预测中的高效应用。通过机器学习模型,该工具能快速从海量分泌蛋白中批量预测胞质与质外体效应子,显著提升研究效率。文章提供了从环境配置、RNA-seq数据处理到批量预测的完整实战流程,并分享了结果解读与避坑指南,是生信研究人员进行病原物效应子鉴定的必备利器。

weixin_29195615的博客 301

关于深度可分离卷积

关于深度学习中的深度可分离卷积

qq_45670407的博客 1796

Vista下普通权限进程动态提升权限 【转】

一、前提    在Vista/Win7下,加强了对安全的管理,对注册表修改,系统目录的文件操作,都需要管理员权限才能完成(当然虚拟存储机制,表面上也相当于能操作)。所以,对于程序中有相关操作的,这时候,就要求我们的程序必须拥有管理员权限。通过mainfest文件,我们可以让程序总是需要管理员权限执行,但是,这将导致程序每次运行时,都需要弹出UAC框老骚扰用户,另外,有时候我们的程序只是在某一些

许落 957

ClaudeCode 通过 CC Switch 配置 Ollama 本地大模型

本文介绍了如何让Claude Code使用本地免费模型qwen3.5:9b而无需Anthropic API Key的方法。主要内容包括:1)安装Claude Code、CC Switch代理工具和Ollama本地模型运行时;2)配置环境变量和设置文件将请求转发到本地服务;3)详细说明了系统架构和工作原理,展示请求如何从Claude Code经CC Switch代理到Ollama本地模型。该方案通过代理拦截和转发机制,实现了使用免费开源模型替代官方API的功能。

稚枭天卓 3221

Vista下普通权限进程动态提升权限

一、前提 在Vista/Win7下,加强了对安全的管理,对注册表修改,系统目录的文件操作,都需要管理员权限才能完成(当然虚拟存储机制,表面上也相当于能操作)。所以,对于程序中有相关操作的,这时候,就要求我们的程序必须拥有管理员权限。通过mainfest文件,我们可以让程序总是需要管理员权限执行,但是,这将导致程序每次运行时,都需要弹出UAC框老骚扰用户,另外,有时候...

weixin_34414196的博客 220

从Verilog到GDS:手把手教你搞定Calibre LVS物理验证(附常见报错解决)

本文详细介绍了从Verilog到GDS的Calibre LVS物理验证全流程,包括工具链配置、RTL到SPICE网表转换、LVS运行配置及高级技巧。重点解析了常见报错如网络不匹配、器件不匹配和电源引脚缺失的解决方案,帮助工程师高效完成芯片物理验证,确保设计正确性。

culing2941的博客 507

UE5.6使用ndisplay,单窗口多画面(单机部署),配置、打包流程,无需switchboard

摘要:本文介绍了在UE5.6中使用ndisplay插件的完整流程。首先需要开启ndisplay和launch插件,创建ndisplay配置文件并设置本地单窗口多画面模式。随后通过Process Explorer获取启动命令用于制作bat文件。打包项目时需删除场景中的ndisplay文件,但保留内容浏览器中的配置,并设置为开发版打包。最后将ndisplay文件导出为.ndisplay格式,与bat文件一起放置在打包目录下,通过bat启动程序。注意修改路径和窗口大小时需保持纯英文路径,且bat代码需保持单行格式

weixin_43912248的博客 977

Windows BAT脚本管理员权限获取:五种方法原理与实战指南

在Windows系统管理与自动化运维中,权限控制是核心安全机制之一。用户账户控制(UAC)通过令牌分离机制,确保标准用户与管理员权限的隔离,这是系统安全的重要防线。理解权限提升原理,对于实现自动化脚本的可靠执行至关重要,尤其在软件部署、系统配置和服务管理等场景。本文聚焦BAT脚本开发中的常见痛点,深入解析MSHTA+VBScript混合、PowerShell单行命令、RUNAS保存凭据、计划任务及EXE封装五种提权方法。其中,MSHTA+VBScript凭借其优秀的系统兼容性,成为跨版本Windows环境下

weixin_33674976的博客 280

MagicDraw小白必看:BDD图中模块的5种属性详解(含SysML v1.6最新端口配置指南)

本文面向MagicDraw初学者,详细解析SysML BDD图中模块的五种核心结构属性,包括组成部分、引用、值、约束属性及端口。重点阐述了SysML v1.6中端口设计的范式转移,对比了完整端口与代理端口的区别与应用场景,并通过实战案例指导如何利用代理端口进行清晰的接口定义与系统架构设计。

rum55的博客 372

DirectDraw与Direct3D游戏高效兼容解决方案:DDrawCompat全面使用指南

DDrawCompat是一款针对DirectDraw和Direct3D 1-7游戏的兼容性修复工具,专为解决经典游戏在Windows Vista至Windows 11系统上的运行问题而设计。该工具通过构建API兼容层和性能优化引擎,实现老游戏在现代系统中的稳定运行与画质提升,让经典游戏重获新生。 ## 老游戏现代系统运行的核心障碍 ### 图形API支持断层问题 Windows系统从Vista

gitblog_00522的博客 435

北斗导航 | 卫星信号捕获跟踪原理解析

卫星信号的捕获与跟踪是导航接收机的"眼睛",其性能直接决定定位精度、动态适应性和抗干扰能力。随着北斗三号全球组网完成,新一代接收机正朝着。两大核心阶段,二者共同构成定位的基础。调制,频谱主瓣宽度达4.092MHz,较传统BPSK调制抗干扰能力提升3dB[38]。的目标持续演进,在自动驾驶、精密农业等领域展现出巨大应用潜力。二维空间中搜索峰值相关能量[4]。卫星导航接收机对信号的处理可分为。北斗三号B1C/B2a信号采用。北斗三号新增的B1C信号采用。

尘世冰封的专栏 772

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: 进程的结束和UAC的权限提升
下一篇: 跟我一起写 Makefile
ShenRui
博客等级 码龄20年 63粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值