mincraft 点开显示此应用无法在你的电脑上运行,去C:\XboxGames\Minecraft Launcher\Content下看了下:
但是别人电脑上相同目录下一样的文件能运行,于是选择重装,但是刚开始下载就遇到这个问题:
商店提示这个
点开一看是0x80070005,去网上查了下是权限错误,E_ACCESSDENIED
用windbg看了下,发现没有Access Denied的错误,只有一些rpc的错误。猜测是别的进程负责读取那个文件。
开process monitor过滤掉无关进程发现确实有一个进程是Access Denied。这个进程是GamingServices.exe,访问c:.GamingRoot
去c:.GamingRoot看了看权限,发现权限无法显示于是把别人电脑上的权限搬过来。
之后果然能够开始下载了,但是又发生别的错误0x8007139F:
网上查不到相关的错误代码,于是跑去原来的目录C:\XboxGames\Minecraft Launcher\Content看了看发现程序重装了但还是程序无法运行。
然后去别人的电脑上看了下相同程序,发现别人电脑上的minecraft.exe不可读,不能复制,即使提权到NT authority\system也不能。看了下权限,发现我虽然是Administrators组的,但是按钮还是灰的不可选。
于是进入安全模式下把这个文件复制出来,检查哈希值发现和我的电脑上的是一样的,然后二进制编辑器打开发现不是标准的PE头。
联想到权限问题,于是在有问题的电脑上尝试用管理员权限在同一目录下重置了下权限:
icacls .\Minecraft.exe /q /c /t /reset
点开还是不行,但等了一会之后就修复成功可以运行了,不知道原因。留给未来探索。