他们只是让 Doom 在 PDF 文件中运行

深入标记中这是一场竞赛,看谁能扭曲 PDF 文件格式来做最令人印象深刻的事情。考虑到 30 多年的射击游戏 Doom 已被移植到许多意想不到的地方,它不可避免地会出现在 PDF 文件中。

来源:The Register _恶意软件

有一场竞赛,看谁能扭曲 PDF 文件格式,做出最令人印象深刻的事情。考虑到 30 多年历史的射击游戏 Doom 已被移植到许多意想不到的地方,它不可避免地会出现在 PDF 文件中。

可移植文档格式 (PDF) 的开发是为了以独立于显示它们的软件、硬件和操作系统的方式呈现文档。它无疑是一个简洁的系统,但恶意软件作者已经利用了它的复杂性。

已经利用了它的复杂性

id Software 的 Doom 在 PDF 中 - 点击放大

然而,对于一个人来说是恶作剧的机会,对于另一个人来说却是编程能力的展示,这给我们带来了 DoomPDF,这是经典第一人称射击游戏的移植版,它将从 PDF 运行,假设用于显示文档的 PDF 引擎至少部分支持 PDF 文件格式的 Javascript 实现。

DoomPDF

The Reg 在 Chromium 浏览器中运行 PDF,并且,纯粹出于研究兴趣,花费的时间可能比我们应该花费的更多,以确保 90 年代混乱的单色渲染能够像我们记忆中那样工作。

The Reg

据作者 Github 用户 ading2210 称,PDF 中 Javascript 的完整规范只有 Adob​​e Acrobat 实现,而 Chromium 和其他浏览器出于安全考虑仅实现了 API 表面的子集。但是,对于有决心和技能的人来说,那里有足够的资源来诱使各种形式的互动进入生活。

ading2210

至于它的工作原理,可以编译 C 代码以在 PDF 中运行;可以抓取关键输入并使用帧缓冲区进行输出 - 作者将其描述为一项挑战。

“我设法通过这种方式获得了 6 色单色输出,这足以让游戏中的内容清晰易读。这种方法的性能相当差,但可以玩,因为更新所有文本每帧大约需要 80 毫秒,”开发人员说。

pdftris 以 PDF 形式呈现 Doom “干得好!”