扫雷与四个月的漏洞

主要观点:

  • 介绍了 retrowin32 项目,使其能在浏览器中运行 Minesweeper ,虽可能会崩溃但仍有一定成果,此过程中充实了更多 Windows API 。
  • 讲述了困扰数月的“大可怕错误”(emulator CPU bug),尝试多种方法隔离均失败,后因偶然发现 FPU 指令的拼写错误而解决该问题。
  • 提及在 FPU 实现中发现的三个愚蠢的拼写错误,意识到应编写 x86 CPU 测试套件,近期有关于用 Rust 编写测试套件的想法。
  • 提到在 Mac 上通过 Rosetta 运行 Wine 可运行 Minesweeper ,且 Wine 比作者的项目更完善,但仍有某些演示因 Rosetta 未实现特定指令而崩溃。

关键信息:

  • retrowin32 可运行 Minesweeper ,其运行涉及更多 Windows API ,如处理注册表、ini 文件及绘图代码等。
  • 尝试多种方法隔离 emulator CPU bug 均失败,最终因 FPU 指令错误解决该问题。
  • 作者意识到应编写 x86 CPU 测试套件,有关于用 Rust 编写的想法及具体做法。
  • 在 Mac 上通过 Wine 可运行 Minesweeper ,但某些演示因 Rosetta 未实现特定指令而崩溃。

重要细节:

  • Minesweeper 在浏览器中运行的截图及尝试链接。
  • 尝试隔离 emulator CPU bug 的各种方法及失败原因,如追踪本地 Windows 执行和模拟器执行的差异、集成 Unicorn 模拟器等。
  • 作者在 FPU 实现中发现的拼写错误及对其的修正。
  • 关于 x86 CPU 测试套件的想法,如穷举 8 位整数操作的输入组合进行测试等。
  • 关于在 Mac 上通过 Wine 运行 Minesweeper 的相关信息及特定演示因 Rosetta 未实现指令而崩溃的情况。
阅读 26
0 条评论