RGH reset glitch hack

转自internet:

rgh:重置 缺陷破解

开此贴的目的,是从纯技术的角度来描述一下个人对这次reset glitch hack的理解。

  这是一个扫盲贴,所以不会有艰深的理论,小白也可以看。但是出于尊重,请不要在回帖中说类似于你说的这些都没用,我就关心什么时候能硬盘跑游戏之类的话。

  另外由于是个人理解,所以可能会有错误。

  XBOX360在启动时,CPU会有一个模块对比启动部分的代码是否正确为原版。如果和存储的特征值不同,就不会让系统继续启动。如果要运行自制系统,首先要搞掉这个保护功能。

  XBOX360CPU存在一个设计缺陷。就是如果给出一个非常短的复位信号,按理说机器会复位,但是实际上,CPU不会重新启动,而会发生一些功能错误,如果这个在非常恰当的时候,给出这个脉冲的话,那个保护模块就会错误的返回一个没有问题的信号,这样,系统就会继续启动了。

  下面就是如何在恰当的时候发出一个足够短的复位脉冲的问题了。

  在胖版中,破解者发现,如果给CPU一个脚(CPU_PLL_BYPASS)一个信号,就会让CPu的频率变得非常慢。然后这时就可以用相对长的复位脉冲来达到让CPu错乱的目的。

  在slim版中,这个信号脚没有了。这就无法让CPU跑在一个慢的频率上,所以产生这个复位脉冲的难度就变大了,因为产生特别短的电脉冲是有难度的。而且你还必须控制这个时序。难上加难。

  不过破解者又发现了一个方法。就是时钟芯片。XBOX360用的时钟芯片可以用IIC总线给一些指令进去(IIC是一种常用的管理总线),让他产生较低的频率,但也不是太低,大概是100兆这样。然后再用一个20纳秒宽度的脉冲,在启动到某个特定时刻(这个靠监视一些脚可以知道),发到CPu的复位脚上去。这样,也可以达到相同的效果。

  所以,除了原理以外,技术上还有2个问题,1是在启动到什么时候,发送这个脉冲。2是产生一个足够短的脉冲。

  破解小组使用了XILINX(世界最大的可编程逻辑器件公司,第二大是altera)CPLD(复杂可编程逻辑器件),型号是XC2C64A

  这是XILINX公司最便宜的CPLD之一,有如下特性:

  1,超低功耗。2,触发器支持双沿触发(可以理解成这个芯片可以让48兆时钟能拿来当96兆用)3,速度快。4同一个芯片,支持不同电压。

  所以在slim的破解中,这一颗芯片肩负了给时钟芯片的IIC总线发送指令的任务。(3.3V电平)还肩负了探测CPU启动状态,用计数器来计算时间,在恰当的时刻给出短脉冲,然后在回复时钟芯片内容的任务。时钟信号用的就是XBOX360本身的48兆时钟信号。

  要注意,这里用XC2C64A,仅仅是因为,他足够的便宜,而不是因为他是最牛逼的。能达到和超过这片CPLD性能的片子,比比皆是,但是都更贵。所以现在有炒这个片子的,我觉得意义不大,炒不了多高。比如说,XC2C128一定能实现他的功能,只是比较贵。你再贵,也不能比替代品贵,对吧。另外,用FPGA来实现目前的工作,会更好更可靠。FPGA内部的数字时钟管理模块可以直接多倍频,计数器可以跑在远高于现在96兆的频率上,计数更精确,能够产生的脉冲更短。就是都比较贵(最便宜的XC3S50AN20),而且封装都比较大,管脚多,还需要多个电压。所以综合来看,破解小组使用XC2C64A是合理的,有性价比的选择。

  至于为什么用C-MODC-MODXC2C64A的最小系统。用起来方便,仅此而已。

  再说说关于那个220pf电容的问题。那个电容可以让脉冲更短一点,可能还有点滤除噪声的作用。我觉得并不是特别重要,如果破不了的话,倒是可以尝试改变一下那个电容的大小,可能会有点用。

  以上是通读wiki和目前放出文档以后,对slim360破解技术细节的一些看法。权当扫盲用。有错误请指正。

 

你可能感兴趣的:(RGH reset glitch hack)