【UWP】修改清单脱离沙盒运行

news/2024/10/12 22:25:47

总说周知,UWP 是运行在沙盒里面的,所有权限都有严格限制,和沙盒外交互也需要特殊的通道,所以从根本杜绝了 UWP 毒瘤的存在。但是实际上 UWP 只是一个应用模型,本身是没有什么权限管理的,权限管理全靠 App Container 沙盒控制,如果我们脱离了这个沙盒,UWP 就会放飞自我了。那么有没有这种可能呢?

我们打开设置应用,通过任务管理器查看进程,就会发现它并没有 Runtime Broker 存在,这个进程是用来在沙盒间代理的,这说明微软给 UWP 开了一个后门。

 那么我们是不是也有办法脱离沙盒运行呢?Ahmed Walid 在 2023年2月 发表了这样一个帖子:

同时他还提交了一个名为 Added a remark about uap10:TrustLevel 的 PR,在这个 PR 中明确提到了如何通过设置 Custom Capability 来修改 UWP 的 TrustLevel

Setting uap10:TrustLevel="mediumIL" while uap10:RuntimeBehavior="windowsApp" requires the Microsoft.coreAppActivation_8wekyb3d8bbwe Custom Capability.

This is also true if uap10:TrustLevel="mediumIL" and EntryPoint is any other value than "windows.fullTrustApplication" or "windows.partialTrustApplication".

You can read more about this custom capability here in Custom Capabilities.

如今这个 PR 已经合并,现在可以直接在微软文档《应用程序 (Windows 10)》中找到了

根据文档描述,我们需要添加一个名为 Microsoft.coreAppActivation_8wekyb3d8bbwe 的自定义权限,然后将 uap10:TrustLevel 设置为 mediumIL 即可

首先我们在清单中加入权限

<?xml version="1.0" encoding="utf-8"?>
<Package...xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"IgnorableNamespaces="... uap4 rescap">...<Capabilities>...<!-- runFullTrust 权限是必不可少的 --><rescap:Capability Name="runFullTrust" /><uap4:CustomCapability Name="Microsoft.coreAppActivation_8wekyb3d8bbwe" /></Capabilities>
</Package>

Custom Capability 不同于其他权限,这是用来给 OEM 自定义使用的,需要 SCCD 文件来证明你有使用权限的资格,所以想上架是基本没可能了,相关内容可以查看教程 [UWP] Custom Capability的使用

我们在项目根目录新建一个名为 CustomCapability.SCCD 的文件,在其中写入

<?xml version="1.0" encoding="utf-8"?>
<CustomCapabilityDescriptor xmlns="http://schemas.microsoft.com/appx/2018/sccd" xmlns:s="http://schemas.microsoft.com/appx/2018/sccd"><CustomCapabilities><CustomCapability Name="Microsoft.coreAppActivation_8wekyb3d8bbwe"></CustomCapability></CustomCapabilities><AuthorizedEntities AllowAny="true"/><Catalog>FullTrust</Catalog>
</CustomCapabilityDescriptor>

 然后将该文件设置为内容,或者选择复制到输出,只要最后能出现在安装包里面就行了

最后我们将 uap10:TrustLevel 设置为 mediumIL

<?xml version="1.0" encoding="utf-8"?>
<Package...xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"IgnorableNamespaces="... uap10">...<Applications><Application...uap10:TrustLevel="mediumIL">...</Application></Applications>...
</Package>

 部署时有概率遇到

DEP0700: 应用程序注册失败。[0x80073CF6] 错误 0x80070057: 在准备处理请求时,由于以下错误,系统无法注册 windows.capability 扩展: 参数错误。

暂时没有找到解决方法,重启几次电脑可能就好了

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

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

相关文章

Oracle之数据库一致性读的原理

1.概述 在Oracle数据库中,undo主要有三大作用:提供一致性读(Consistent Read)、回滚事务(Rollback Transaction)以及实例恢复(Instance Recovery)。 2.原理 一致性读是相对于脏读(Dirty Read)而言的。假设某个表T中有10000条记录,获取所有记录需要15分钟时间。当前时…

Codeforces Round 943 (Div. 3)

小孩不懂事,随便写点无伤但没速通,然后被hack两个题,直接从rk90掉到rk114514+了,我是真他妈的服了。 特此纪念 A 暴力枚举秒了。 B 二分答案秒了 C 他妈脑子抽了,差一步完全整解。我们发现只要确定 \(a_{\mathbf{1}}\) 那么你直接不断加 \(x_i\) 就能求出 \(a_i\),但是直…

5.3 居家养老web端控制台

基于vue3+ElementPlus做的一个居家养老静态界面,内容准备后期实现 以下是效果图 特别声明用到了百度地图JS API进行位置展示与iV Cam模拟实时监控 以下是代码部分<script setup> import { onMounted, onBeforeUnmount } from vue import { ref } from vue const videoRe…

Python深入理解*和**含义和应用

本文源代码:https://gitee.com/obullxl/PythonCS/tree/master/CS-CY2405 Python中*和**很常见 禅师在阅读Python代码过程中,经常看到一个函数或方法的入参是*args和**kwargs(如:def func(*args, **kwargs)等)形式,或者在调用函数或方法时,在入参的元组和列表前面增加1个…

设置border后,子元素和父容器存在间隙

下方也出现了间隙网上找了一圈,全是说inline-block的,但是我调整a标签为block还是有间隙。 问题代码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=…

python教程3.1:数据类型:字符串+列表list

一、字符串 字符串是⼀个有序的字符的集合,⽤于在计算机⾥存储和表示⽂本信息 常用操作二、列表list []内以逗号分隔,按照索引,存放各种数据类型,每个位置代表⼀个元素 特征 1、增加操作追加,数据会追加到尾部 2、删除操作3、修改操作 4、查找操作 如果不知道元素在列表哪…

WPF上位机 - 轴运动控制

最近学习WPF,写了一个WPF上位机使用S7.NETPlus 库与西门子1500TPLC,控制西门子伺服的通用上位机界面。分享在写上位机过程中踩的一些坑和使用体验。 上位机介绍可以看到上位机分为3个区域轴选择,使能区域 控制参数设置区域 诊断区域选择使能区域 选择区域读取TIA中组态的轴工…

系统管理之Linux启动流程

1.系统初始化进程SysV风格: init centos5 配置文件:/etc/inittabUpstart风格: init centos6 配置文件:/etc/init.d/,/etc/inittabSystemd风格: systemd centos7 配置文件:/usr/lib/systemd/system/,/etc/systemd/system/ systemctl是一个systemd管理工具2.Systemd 服务…