不通过Microsoft Store的GUI界面安装Store App
2022-3-26 07:10:32 Author: mp.weixin.qq.com(查看原文) 阅读量:56 收藏

10.42 不通过Microsoft Store的GUI界面安装Store App

http://scz.617.cn:8/windows/202201282230.txt

Q:

如何不通过Microsoft Store的GUI界面安装Store App,比如WinDbg Preview

A: scz

1) 获取指定App的Store URL

Google for "WinDbg Preview Microsoft Store",找到Store URL

https://www.microsoft.com/en-us/p/windbg/9pgjgd53tn86

也可以浏览器中直接访问

https://aka.ms/WinDbgPreview

会跳转到Store URL

curl --ciphers DEFAULT --compressed -ksL -I https://aka.ms/WinDbgPreview

从301转向中获取Store URL

如果已有Microsoft Store,搜出指定App后,在右下角有个"共享",点击后出现的界面上有个"复制链接",形如

https://www.microsoft.com/store/productId/9PGJGD53TN86

这种也是Store URL,如果用浏览器访问它,最终转向到

https://www.microsoft.com/en-us/p/windbg-preview/9pgjgd53tn86

要点是知道目标App的ProductId。

2) 根据Store URL获取可下载URL

有个网站

https://store.rg-adguard.net/

在这里输入指定App的Store URL,可以获取相应的可下载URL。比如输入下列URL之一

https://www.microsoft.com/en-us/p/windbg/9pgjgd53tn86
https://www.microsoft.com/en-us/p/windbg-preview/9pgjgd53tn86
https://www.microsoft.com/store/productId/9PGJGD53TN86

获取的可下载URL形如

http://tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/91c570bb-a9bf-413e-8b1f-d723721b101a?P1=1643344394&P2=404&P3=2&P4=...

其中P4好像与认证相关。从Microsoft Store下载WinDbg Preview,需要登录,匿名无法下载。P4可能是"store.rg-adguard.net"用自己的帐号登录生成的。无论如何,现在有一个可以粘贴到浏览器中的可下载URL,这是微软官方站点的URL,没有安全问题。

理论上劫持Microsoft Store的HTTPS请求应该可以获取这种下载URL,只不过有现成"store.rg-adguard.net",没必要自己折腾。

下回来的文件名形如

Microsoft.WinDbg_1.2111.9001.0_neutral__8wekyb3d8bbwe.Appx

3) 手工安装.Appx

缺省情况下,双击.Appx即可。该操作实际依赖"App Installer",其中文版叫"应用安装程序",其本身也是个Store App,通过Microsoft Store安装之。

https://www.microsoft.com/store/productId/9NBLGGH4NNS1
https://www.microsoft.com/en-us/p/app-installer/9nblggh4nns1

即使没有"App Installer",也可以用PowerShell安装

Add-AppxPackage -Path "<path>\some.Appx"

参看

https://docs.microsoft.com/en-us/powershell/module/appx/add-appxpackage
https://docs.microsoft.com/en-us/powershell/module/appx/remove-appxpackage

4) winget安装

假设已知Store App的ProductId,可用winget安装

winget install 9PGJGD53TN86

winget是Windows Package Manager Client的别名,看着像Microsoft Store的命令行版,我没有实测这条命令。

$ where winget
C:\Users\scz\AppData\Local\Microsoft\WindowsApps\winget.exe

5) 7-Zip解压.Appx

用7-Zip打开.Appx,这就是个压缩包。释放到任意位置,比如

C:\Green\windbgx\1.2111.9001.0\

在管理员级cmd中执行

"C:\Green\windbgx\1.2111.9001.0\DbgX.Shell.exe"

D: scz

有人可能见过这个脚本

https://github.com/MattiasC85/Scripts/blob/master/OSD/Download-AppxFromStore.ps1

该脚本实际依赖"store.rg-adguard.net",这样用

$ powershell -ExecutionPolicy ByPass -File Download-AppxFromStore.ps1 https://www.microsoft.com/en-us/p/windbg/9pgjgd53tn86

Creating Directorty C:\Users\scz\AppData\Local\Temp\9pgjgd53tn86
Downloading Microsoft.WinDbg_1.2103.1004.0_neutral__8wekyb3d8bbwe.BlockMap...
Downloading Microsoft.WinDbg_1.2103.1004.0_neutral__8wekyb3d8bbwe.appx...
Downloading Microsoft.WinDbg_1.2111.9001.0_neutral__8wekyb3d8bbwe.BlockMap...
Downloading Microsoft.WinDbg_1.2111.9001.0_neutral__8wekyb3d8bbwe.appx...
---------------------------------------

Download is complete...
Opening Folder

该脚本会下载多个版本,我们只需要最新的1.2111.9001.0。此外,该脚本还会下载.BlockMap文件,这个文件中只有一个BlockMap.xml。参看

App package block map
https://docs.microsoft.com/en-us/uwp/schemas/blockmapschema/app-package-block-map

The package block map file is an XML document that contains a list of the app's files along with indexes and cryptographic hashes for each block of data that is stored in the package.

简单点说,.BlockMap文件用于完整性校验。像前面那样7-Zip解压,用不上该文件。

并不推荐该脚本,记录于此仅为备忘。


文章来源: http://mp.weixin.qq.com/s?__biz=MzUzMjQyMDE3Ng==&mid=2247485661&idx=1&sn=229fdcdea4edc4933e9e407d20c1f8f8&chksm=fab2cbe2cdc542f42e59aa4391cdf95d53eb611d84c3a179317571ecf9cf239bb74ffb2c853a#rd
如有侵权请联系:admin#unsafe.sh