mac小黑 发表于 2012-5-15 21:36

科普:iPhone的越狱原理。

OS设备的启动顺序是:通电后,从bootrom中执行代码映射到内存空间的特定地址里,然后载入设备 NOR芯片中的Low Level
Bootloader,并对iBoot进行签名检查。如果iBook通过了检查,它将被载入并对iOS Kernel进行签名检查。成功的话载入iOS
Kernel并由其对文件系统及所有程序进行签名检查。
任何一步签名检查的失败都会导致启动过程的中止。足够敏锐的话,你会发现在这个不断检查的过程中,bootrom加载LLB并没有进行签名检查。这
就是越狱工具Pwnage
1.0做的事,载入一个修改过的LLB并停止一系列的签名检查。在Pwnage2.0中,利用了一个证书解析过程中的溢出来打断认证链。而且
bootrom与firmware无关,除非更新硬件设计否则这个设备将一直被越狱。所有的MB型号设备都存在bootrom漏洞,甚至一些MC型号的
3GS也存在这种漏洞。
iOS的越狱分为tethered(非完美)和untethered两种。非完美越狱意味着用户拥有了一个修改后的iBoot却没有一个修改后的
LLB,以致于无法通过签名检查而停止。这种情况下设备会进入DFU模式试图恢复,所以可以连接电脑利用越狱工具直接引导iBoot而不进行恢复。
直到新的bootrom漏洞被发现后新的完美越狱才成为可能。09年初发现了一个24kpwn漏洞。具体是:在恢复的时候并不会检查被刷入NOR芯
片的LLB镜像文件。因此刷入一个超过0x24000
byte大小限制的LLB将导致一个溢出,以致bootrom的签名检查取消并且载入一个修改过的LLB。苹果终于试图拿出一个强大的防御方案来,在修补
24kpwn漏洞的同时加入了ECID检查。恢复设备时不再允许降级且利用每个设备的ECID(设备相关的一个芯片ID)返回一个签名(SHSH)来添加
到固件中进行恢复。如果签名没有成功,那么刷新过程将失败。
看起来很牢固的一个服务端签名方案。致命的一点在于还是返回了SHSH到本地,那么就可以将这个签名保存下来用于再次越狱或降级了。这就是利用TinyUmbrella之类的工具备份SHSH可以进行的事。
在3.0-3.1.2阶段发现了两个重要的iBoot漏洞:iBoot Environment Variable
Overflow和usb_control_msg漏洞。但是从3.1.3开始所有的iBoot漏洞都被填补了。目光被放到了Kernel上。利用了恢复
过程中了一个允许未签名代码执行的漏洞,可以在不修改iBoot的前提下运行修改后的kernel了。
4.0发布时,利用了全系列存在的一个safari中的pdf字体漏洞导致解析时堆栈溢出而破解。之后又发现了SHAtter bootrom漏洞。





重点在第三步!插入修改过的LLB文件。

experience 发表于 2012-5-15 21:52

技术。。。

yansy 发表于 2012-5-15 21:55

好'期待更详细的说明。

andyrave 发表于 2012-5-15 22:00

顶楼主做iso版主

superbillgates 发表于 2012-5-15 22:01

学习下~

屌丝男 发表于 2012-5-15 22:03

很深奥,都是黑客玩的^,^

8859 发表于 2012-5-15 22:04

太长了,先顶上来看。:D

myccer 发表于 2012-5-16 08:58

学习了,很透彻

poweredlww 发表于 2012-5-16 09:17

期待继续,技术啊

think617 发表于 2012-5-16 10:36

纯技术贴。看不懂。

tongray 发表于 2012-5-24 22:24

顶。。。。
页: [1]
查看完整版本: 科普:iPhone的越狱原理。