XBOX360告破

来源:互联网 发布:淘宝网乐高未来骑士团 编辑:程序博客网 时间:2024/04/30 00:17

今天放出消息,xbox360告破。

技术宅们发现通过模拟reset时序有一定几率(25%)可使固化在芯片内部的bootloader(1bl)在加载NAND的 bootloader(2bl)时绕过对其安全性校验,并通过一个xilinx的CPLD飞线到xbox主板完成了该创举(运行了一个用户自己编译的 xell),同时放出操作文档和相关工具。传说该CPLD的开发板在taobao上已经买到脱销。。。

信任链在bootloader阶段被截断,标志着xbox360安全体系的全面土崩瓦解。因为属于硬件设计上的缺陷(如果这也算缺陷的话),理论上没有幸免的机型。

等待软解的同学需要一定的耐心,相信官方固件的逆向工作正在紧锣密鼓的进行,一个可利用的系统级漏洞,会使一切成为可能。虽然MS是软件起家的,但他的安全补丁也是最多的,不是么。

 

详情参考:

http://libxenon.org/index.php?topic=145.0

http://bbs.a9vg.com/thread-1594267-1-1.html


把以前翻译的东西放在这里算个导读...

Bootloader第一阶段(Bootrom)

这部分烧录在CPU的裸片里,大概是32kb左右的代码空间。主要的职责是负责将第二阶段的Bootloader从NAND Flash中读取出来,经过解密后放在CPU芯片内部的静态RAM中运行。他需要校验解密过程序镜像的哈希值,不对就不会执行。这部分代码包含了一堆的测试函数,我们可以通过拉起第5PIN“POST IN”,来激活这部分测试程序(译者注:POST为上电自测,例如PC BIOS里的内存检测之类),这个PIN可以在PCB的背面找到。这些测试项看上去没什么意思(当然是站在破解的角度) - 这些测试项看上去都和FSB(译者注:系统前端总线)相关(连接CPU和GPU的总线)。这部分代码是固定的,所有的系统用的是一份。

 

Bootloader第二阶段("CB")

这部分代码位于NAND flash里的0x8000地址上,由Bootloader第一阶段进行解密到内部静态RAM上并运行。他实现了硬件的基本初始化工作,并包含了"电子保险检查代码",用于校验Bootloader第二阶段的版本。电子保险包含了预期的版本号。2BL中保存了版本号和允许功能掩码位,通常保存在0x3B1 / 0x3B2..0x3B3地址上。这时去校验存贮在2BL头部的配对信息。其中的一部分校验功能是检测NAND区域中的校验和。这块区域里的代码被SMC加载运行。Xbox中包含了一个虚拟机,一些代码需要在上面运行。虚拟机的代码有些复杂,包括了下面一些操作:

- 初始化PCI桥

- 禁用GPU PCIE上的JTAG测试口

- 初始化串口

- 和SMC通信,清握手位

- 初始化内存控制器

- 希望不要:内存初始化失败会产生RROD(译者注:可怕的三红)

 之后,外部的(512MB)内存就被初始化并且可以使用了。2BL这时将4BL解密并放在内存里。内存加密功能被使能 - 这时不会在内存上出现任何未被加密的代码段。




原创粉丝点击