iPhone解锁的原理以及理论上真正完美的解锁

上传人:平*** 文档编号:15882758 上传时间:2017-11-06 格式:DOC 页数:10 大小:43.57KB
返回 下载 相关 举报
iPhone解锁的原理以及理论上真正完美的解锁_第1页
第1页 / 共10页
iPhone解锁的原理以及理论上真正完美的解锁_第2页
第2页 / 共10页
iPhone解锁的原理以及理论上真正完美的解锁_第3页
第3页 / 共10页
iPhone解锁的原理以及理论上真正完美的解锁_第4页
第4页 / 共10页
iPhone解锁的原理以及理论上真正完美的解锁_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《iPhone解锁的原理以及理论上真正完美的解锁》由会员分享,可在线阅读,更多相关《iPhone解锁的原理以及理论上真正完美的解锁(10页珍藏版)》请在金锄头文库上搜索。

1、1,iPhone 的硬件iPhone 的硬件配置比较高,虽然卖得是比较贵,但是相对于Nokia N95 之类的比起来,iPhone 造价肯定比 N95 贵不少。现在初步相信 iPhone 的 CPU 是一个 Samsung S5L8900,这个 CPU是具有 A-GPS 和 3G 功能的(这是后话) ,但是 iPhone 的 GSM 模块采用了另外一个完全独立的系统,就是我们常说的 baseband,这个 baseband 有自己的 firmware(操作系统)和 CPU(是一个 S-GOLD2,西门子的手机也是采用这个 CPU) ,而且,通俗点说,baseband 还有自己的闪存用来记录目前

2、 baseband 的状态,这个闪存被称为 NOR,我们所说的 seczone 就在其中。这个 baseband 单独拆下来经过小改,也够当一个手机用了。所以实际上 iPhone 是非常复杂的一个手机。我们每次所谓更新firmware,实际上是更新 iPhone 的 firmware(就是 OS X Darwin) ,而 bbupdater 则是更新 baseband 的 firmware。你可以这样想,iPhone 是一个电脑,这个电脑上插了一个联通CDMA 卡,你使用电脑可以打电话发短信和上网,问题是联通CDMA 卡被锁死了,只能上联通,如果要解锁,怎么办?通过修改电脑的操作系统(Wind

3、ows XP)是不行的,因为控制权在CDMA 卡手里,所以你必须想办法通过 Windows XP 来修改CDMA 卡上的系统,才能达到解锁的目的。2,完美的解锁有些人会问了,什么才是所谓的完美解锁?现在的解锁有什么不完美?完美的解锁,就是真解锁,如果你的 iPhone 完美的解锁了,你的iPhone 不需要任何打过补丁的 baseband firmware,你的 iPhone 可以随着 Apple 的 firmware 升级随时升级,不会有任何问题,而且,你的整个 iPhone 系统,就是 Apple 原汁原味的系统,没有任何改动!就像软件的破解一样,完美解锁,就是注册码,软件还是那套软件,输

4、入注册码后就注册了,完美,而目前的解锁,实际上都是注册机,把软件中的某些地方打了补丁。那么,怎么样才能实现完美解锁?刚才我们提到了,iPhone 中baseband 的资料都存在 NOR 里,是的,NOR 里保存了目前baseband 的状态,其中就有目前 iPhone 的解锁状态,iPhone 出厂的时候,都给锁在 ATT 的网络里了。到这里有些人想问了:那么我们把这个状态改成解锁,不就完美了么,是的,但是,问题是:1,只有通过 baseband 的 firmware,也就是 baseband 的操作系统,才能读写 NOR,而且 NOR 中 seczone 的控制及其严格,想要直接发指令写入

5、,是不可能的。2,baseband 的 firmware 是 Apple 数字签名过的,意思就是说,只有 Apple 自己的 1024 位的私匙签名过的 firmware,baseband 才会运行。3,最重要的一点,我们不知道要往 NOR seczone 里面写入什么,才能解锁,因为 NOR seczone 里数据都是加密过的,不是 0 就是锁,1 就是解锁这么简单,每台 iPhone 的 NOR 在加密前可以是一样的,但是加密后每台都是不一样的,而且这个加密机制,也只有通过 Apple 的私匙才能算出来。那么,想要达到完美解锁,需要怎么做?实际上,你可以通过 iPhone 的 minico

6、m 对 iPhone 的 baseband 发送指令,其中有一条指令,就是用来解锁的,而且我们明确知道这条指令是什么,就是:AT+CLCK=N,0,xxxxxxxx注意到后面那 8 个 x 了吗?那些 x 就是你的解锁码,unlock code,或者专业说法,叫做 NCK、Network Control Key, ,这个key 每个 iphone 都不一样,相信苹果应该是用某种随机机制生成了这些解锁码,然后和 IMEI 或者序列号挂钩,放在自己的数据库里,在将来,苹果官方提供解锁的时候,他们会通过你的 IMEI或者序列号告诉你的 unlock code,达到完美解锁。但是你发送指令的时候,你的

7、 iPhone 又怎么知道这个解锁码是对还是错的?如果 iPhone 需要知道对错,那么说明 iPhone 自己知道unlock code,所以我们能从 iPhone 里某个地方找到这个 code,然后完美解锁,对吗?不对!实际上 iPhone NOR 上保存的,是这个 code 经过某个特殊的算法生成的一个 hash 值,hash(code) ,而这个算法是不可逆的(就像MD5) 。通俗点说,我们可以这么想,Apple 教会了 iPhone 一套暗号,告诉 iPhone 1 = 鸭子 2 = 鸡 3 = 鹅,然后把暗号 123 这个 unlock code 编码成“鸭子鸡鹅存放在 Phone

8、 NOR 里,这时候 iPhone 并不知道 unlock code 是 123,它只知道如果别人告诉我 123,我按照Apple 的暗号算一下,如果算出来和 鸭子鸡鹅 一样,那么别人告诉我的 code 就是对的了。当然实际上这个过程不是这么简单,否则你一猜就能破译这个密码了,按照目前的计算机水平,把这个unlock code 通过 hash 过的值逆算回来,几乎是不可能的。那么,我们穷举行吗?不就是一个 8 位数嘛?我们从 00000000 试到 99999999,总有一个对吧?这个方法理论上可以,但是实际上行不通,原因又两个:1,按照粗略结算,关把这些 1 亿个指令发给 iPhone 尝试

9、,就要35 天,并且还不考虑 iPhone 算需要多久。2,最关键的,iPhone 的 baseband NOR seczone 中,有一个 NCK计数器,一旦你尝试 3-10 次失败,你的 baseband 将会硬件烧死在AT&T 上。所以,目前来说,iPhone 完美解锁,还没有,相信如果 Apple 不出大错误,也不会有,除非 Apple 到时候官方推出解锁,那才是完美解锁。3,目前的解锁目前 iPhone 上有 3 种软件解锁,分别是:1,iUnlock / Anysim 1.0.2 / iUnlock Reloaded 这些都是同一种,都是使用了 iUnlock 的核心代码。2,iP

10、honeSimF,也就是 IPSF 提供的需要花钱购买的解锁。3,Anysim 1.1.1这 3 种解锁,都不是完美解锁!目前相信,这 3 种方法的工作原理如下:iUnlockiUnlock 通过直接在 baseband firmware 上打补丁(我不知道他们怎么跳过了苹果的签名检查,我知识不够) ,跳过了 baseband firmware 对的 NOR 中 token(这个 token 就是 hash 过的 NCK 挂钩的值)检查,然后发送 AT+CLCK 给 baseband 要求解锁,由于token 的检查已经被跳过这个时候实际上发送什么 NCK iPhone 都会同意解锁,这样解锁

11、后的 baseband 会修改 seczone 中的 lockstate table,但是这么做的结果就是 NOR 中的数据不再是合法 的了,因为我们根本不知道真正能够满足 token 是 NCK 什么,只不过因为在 baseband firmware 上打了补丁,告诉 baseband firmware 不要检查这个 token 而已。这么做过之后,你的 baseband firmware 就是打过补丁的了,不是苹果原来的 baseband firmware 了。这也造成了后来的 1.1.1 升级,Apple 升级了 baseband firmware,结果不合法的 lockstate ta

12、ble 导致了 iPhone 砖头。iPhoneSimFree IPSF最开始大家都认为 IPSF 的解锁是最完美的,也很多人认为 IPSF的解锁就是完美解锁,因为 IPSF 的解锁过程需要联系他们的服务器,不少人相信他们通过走后门或者其他内奸手段,得到了Apple iPhone 这个 unlock code 数据库,所以能够提供真解锁,现在广泛相信的是,这是一个天大的谎言。根据 DEV TEAM 的研究,IPSF 的解锁原理是:他们找到了 Apple iPhone 中 RSA 算法的一个漏洞,一个很大的 Bug,通过利用这个BUG,他们把 NOR seczone 中的 token 清零(全部

13、清空) ,然后再构造一个特别的 lockstate table。iPhone 在启动校验 token / locktable 合法性时候,因为这个 BUG,导致这个全部是 0 的token + locktable 得以合法验证,所以 iPhone 认为这个机器是合法解锁的了。这个 bug 在 1.1.1 升级的时候苹果还没有补上,所以 IPSF 的机器在升级 1.1.1 之后可以继续保持 unlock。但是,这么做的后果是不堪设想的!我上面说了,每个机器的token 都不一样,每个 iPhone 的 token 全世界唯一,除了苹果知道,没有人知道, IPSF 把 iPhone 的 token

14、 清零,目前在这个 bug 还没有补上的时候,IPSF 解锁过的 iPhone 还能用,但是当苹果在修补这个漏洞后,要么就别升级,要么升级后 IPSF iPhone 就变废铁了,而且基本上无药可救。Anysim 1.1.1最新推出的 Anysim 1.1.1 应该是目前最好的软解,Anysim 111 的原理和 iUnlock 不一样,Anysim 111 完全不去动 seczone 里的 token和 lockstate table,整个解锁过程不需要发送 AT+XCLK 指令,如果你解锁用 minicom 运行后就知道 lockstate table 还是锁住的状态,anysim 111

15、用的是在 baseband firmware 上打补丁,跳过了所谓 mnc检查(network check,实际是什么我也不是很明白)完全欺骗了iPhone,让 iPhone 认为自己解锁了。这个方法的好处就是:seczone 完全没有动过,内容完全,之后如果 Apple 再升级baseband firmware,大不了我们的手机重新锁死,应该是不会再变砖了。所以,目前所谓变“处女的方法,就是把 iUnlock 修改 seczone的 locktable 重新改回来。至于 IPSF 解锁后破坏的 seczone,就得听天由命了anysim 1.1.1p现在 anysim 出了 1.1.1p,看

16、 google code 上只有一个简短的说明:“fix the counter problem”,也就是说:“解决了计数器的问题” 。我也不明白这个到底是怎么回事,hackint0sh 上曾经有讨论过anysim 111 在更新了 baseband firmware 后,还是发送了 XCLCK 这个指令,而按照 anysim 111 的工作原理,这个指令完全不需要而且也完全不可能会成功。而且执行这个命令会增加一次 NCK 尝试解锁计数。据说是因为失误,在 anysim 102 - 111 的时候这段代码忘记剔除了。但是这个帖子当时就被骂是胡说八道,据说源代码上已经把调用标记了,不会再调用了,反正看到最后也是没有结果。而且也不能确定这个所谓的计数器,就是指 NCK 计数器。我的看法是,你如果现在要解锁,就用 anysim 1.1.1p 吧,如果你已经用了 anysim 1.1.1 解锁,那也完全没有关系,反正 NOR seczone 完全可以重写(回复出厂状态,恢复

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号