use*_*742 15 windows-7 keyboard-shortcuts windows-10
背景信息
因此,在 Windows 7 及更高版本上,当登录时按下 control + alt + delete 时会打开一个菜单。此菜单会弹出一个带有各种选项的 GUI。这是控件 alt 删除(或 CAD)菜单。当您尝试以管理员模式运行任何程序时,会出现一个名为“UAC 同意 UI”的弹出窗口,要求用户确认所需的管理员权限。
游戏
我看到发生这种情况的具体程序是Nintendo Nightmare,这是一款 2009 年 5 月的旧游戏。 然而,该游戏很可能是重新编译的,因为游戏内部报告说它是用 Game Maker 8 编译的,而 2009 年 5 月并不存在。
漏洞利用
由于未知和不清楚的原因,打开 CAD 菜单或同意 UI 对话框会导致游戏无法执行部分游戏代码。这包括碰撞检测和处理帧速率上限的任何代码。我只能在 Windows 7 上进行检查,但这也已被确认在 Windows 10 上也可以使用。我会询问是否有人可以在 Windows 8 上运行,但由于某些 Windows 8 midi 错误,该游戏甚至无法在 Windows 8 上运行。
为什么这甚至有助于理解
所以我和其他人快速运行这个游戏......或者至少尝试。我尤其对它非常恐惧。不管实际上有没有一种有用的方法,这个故障都可以潜在地用于节省运行时间。实际上,几乎立即会想到六个地点。
这是我大约一个月前制作的 TAS 视频,以供参考当前的速通路线:[TAS] Nintendo Nightmare in 24:04 by Typhon
在路线中,有以下关键点:
对于其中五个简单地调用一个 bug 立即掉下地板将是最快的死亡方式,所以那些只通过使用这个 bug 而没有任何花哨的东西可以节省很少的时间。
不过,第二点更有用,意义更大。马里奥的死亡蛋部分同时是运行中最难的部分,也是迄今为止最长的部分,纯粹是因为敌人实体的数量庞大。在该区域花费的大部分时间都在杀死敌人。然而,通过在精确数量的帧中调用这个错误,玩家可以假设跳跃,然后让所有敌方实体从地板上掉下来,从而立即杀死房间里的一切。这样做很可能会在整个运行中减少五分之一的时间。
跳过第 2 点实际上是很长一段时间以来的主要兴趣点,找到一种跳过它的方法可能是最高优先级。
所以我试图确定这个错误为什么会在技术层面发生,以及如何在准确的时间潜在地复制它(即不实际打开那些侵入性弹出窗口之一)。
迄今为止的故事
所以我问过的其他一些人显然更了解 Game Maker 8.0 引擎的内部结构,显然这个 bug 会影响所有Game Maker 8.0 游戏,尽管这并没有说明多少,因为该 bug 在当前不再存在发布。因此,询问开发人员与询问其他熟悉引擎的人一样有用。
使用一些挖掘工具(别问我,我不知道),他们发现在主游戏循环中抛出了一个异常,代码“0EEDFADE”显然等同于一些未知的 Delphi 异常。这反过来会导致 gameLoop 跳过帧执行的其余部分。Game Maker 8 据说是用 Delphi 编写的,所以只能告诉我们某些东西收到了意外或无效的东西。同样,在这两点之间,他们缩小了必须发生的异常的范围,他们发现他们唯一能找到的 Windows API 是对 JoyGetPosEX 的调用,它显然用于操纵杆功能。显然,即使在没有操纵杆的游戏中,它仍然会被调用。
所以现在我只是想弄清楚这些对话框是什么导致操纵杆(?)功能中断,以及是否有更简单的方法来“中断操纵杆功能”。
Bob*_*Bob 29
该Ctrl+ Alt+Delete的组合,更正式的安全警告序列,带来了对Windows安全对话框安全桌面。这是一个完全独立的桌面,与在 ( \Sessions\1\Windows\WinSta0\Winlogonvs \Sessions\1\Windows\WinSta0\Default) 1上运行的所有其他应用程序完全不同。Microsoft 文档中提供了更多信息。
此行为自 Windows Vista 中引入安全桌面以来就存在。默认情况下,类似的过程用于 UAC 提升提示。
桌面切换可能会导致某些应用程序出现问题,尤其是那些使用 3D 图形的应用程序。在 Vista 的早期,由于它与早期 WDDM 图形驱动程序的交互方式,它特别慢。
作为替代方案,如果你的要求是,打开任务管理器,你可以这样做Ctrl+ Shift+Esc或通过任务栏上单击鼠标右键。这不会导致桌面切换。
1来自 Windows Internals 7th Ed Part 1 的第 7 章
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |