

如今,用JTAG黑掉最初的Xbox并不有趣,但这么做非常有趣,这就是Markus Gaasedelen的想法。
2001年11月发布的第一代Xbox是微软首次涉足游戏机行业。由于其硬件看起来很像21世纪初的廉价但多功能的个人电脑,这款设备立即受到了希望在其上运行“自制”代码和替代操作系统的技术爱好者的密切关注。
在它的生命周期中,Xbox受到了广泛的硬件和软件攻击。但是在20岁的时候,这款基于英特尔的奔腾III系统为学习或探索与安全和计算机系统工程相关的众多主题提供了一个惊人的平台,这些主题至今仍然相关。
与我们通常的内容不同,本文利用一些怀旧情绪来解决一些原始Xbox研究人员早期想法所带来的挑战:通过英特尔x86 JTAG处理器“入侵”原始Xbox。
与本世纪头十年的其他游戏机不同,最初的Xbox拥有简单的架构,一个英特尔(Intel)处理器和一个英伟达(nVidia) GPU,以及统一的内存。Xbox的安全很大程度上依赖于一个“秘密的”512字节引导程序,这个引导程序被小心地隐藏在nVidia MCPX Southbridge中。在发售后不到3个月,Andrew“bunny”Huang泄露了这一秘密,这也为进一步的研究打开了大门。
邦尼用FPGA输出了秘密ROM
进入HyperTransport总线,因为它离开MCPX走向北桥/GPU,然后通过前端总线到CPU。Bunnie在2003年出版的《Hacking The Xbox?(现在免费)》一书中详细描述了这种攻击(以及其他攻击)。
经过进一步调查,开发人员发现微软故意将TRST引脚接地在Xbox处理器的底部,以禁用英特尔JTAG接口,并阻止任何人窥探该方向。
更重要的是,为了查询内存、寄存器或执行其他类似调试器的操作,颠倒英特尔私有JTAG指令的黑盒被认为是不可利用的。
在他的博客文章中,Markus Gaasedelen详细介绍了他是如何在Intel x86上利用JTAG的。本文对英特尔处理器数据表、开发人员手册和参考设计进行了深入的回顾,以最好地理解硬件调试器的工作原理。
他的博客文章重新提出了一个老想法,即最初的微软Xbox可能通过英特尔x86处理器的JTAG接口被黑客入侵。创建了一个自定义的CPU中间层PCB来将JTAG信号传递给CodeTAP硬件调试器。Xbox的秘密引导程序通过英特尔JTAG成功卸载,从执行的第一个指令开始就具有真正的调试功能,结束了一个20年理论的章节。