加载中…
个人资料
TianshiYan
TianshiYan
  • 博客等级:
  • 博客积分:0
  • 博客访问:15,677
  • 关注人气:43
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于iPhone4 的基带完美解锁

(2010-12-16 20:13:36)
标签:

iphone4

ios4.1

基带

解锁

越狱

it

apple

分类: ●职场日记&离岸开发

iPhone中baseband(基带)的资料都存在NOR里,是的,NOR里保存了目前baseband的状态,

其中就有目前iPhone的解锁状态,iPhone出厂的时候,都给锁在ATT的网络里了。

到这里会有人想问了:那么我们把这个状态改成解锁,不就完美了么?

是的。

关于iPhone4 <wbr>的基带完美解锁

 

但是,问题是:

 

1,只有通过baseband的firmware,也就是baseband的操作系统,才能读写NOR,

而且NOR中seczone的控制及其严格,想要直接发指令写入,是不可能的。

 

2,baseband的firmware是Apple数字签名过的,意思就是说,

只有Apple自己的1024位的私匙签名过的firmware,baseband才会运行。

 

3,最重要的一点,我们不知道要往NOR seczone里面写入什么,才能解锁,

因为NOR seczone里数据都是加密过的,不是0就是锁,1就是解锁这么简单,

每台iPhone的NOR在加密前可以是一样的,但是加密后每台都是不一样的,

而且这个加密机制,也只有通过Apple的私匙才能算出来。

 

那么,想要达到完美解锁,需要怎么做?

 

实际上,你可以通过iPhone的minicom对iPhone的baseband发送指令,其中有一条指令,

就是用来解锁的,而且我们明确知道这条指令是什么,就是: AT+CLCK=“PN”,0,“xxxxxxxx”

注意到后面那8个x了吗?那些x就是你的解锁码,unlock code,

或者专业说法,叫做NCK、Network Con­t­rol Key,

这个key每个iphone都不一样,相信苹果应该是用某种随机机制生成了这些解锁码,

然后和IMEI或者序列号挂钩,放在自己的数据库里,在将来,苹果官方提供解锁的时候,

他们会通过你的IMEI或者序列号告诉你的unlock code,达到完美解锁。

 

但是你发送指令的时候,你的iPhone又怎么知道这个解锁码是对还是错的?

如果iPhone需要知道对错,那么说明iPhone自己知道unlock code,

所以我们能从iPhone里某个地方找到这个code,然后完美解锁,

对吗?不对!

 

实际上iPhone NOR上保存的,是这个code经过某个特殊的算法生成的一个hash值,hash(code) ,

而这个算法是不可逆的(就像MD5)。

通俗点说,我们可以这么想,Apple教会了iPhone一套暗号,

告诉iPhone 1 = 鸭子 2 = 鸡 3 = 鹅,然后把暗号123这个unlock code编码成“鸭子鸡鹅”

存放在Phone NOR里,这时候iPhone并不知道unlock code是123,它只知道如果别人告诉我123,

我按照Apple的暗号算一下,如果算出来和”鸭子鸡鹅”一样,那么别人告诉我的code就是对的了。

当然实际上这个过程不是这么简单,否则你一猜就能破译这个密码了,按照目前的计算机水平,

把这个unlock code通过hash过的值逆算回来,几乎是不可能的。

 

那么,我们穷举行吗?不就是一个8位数嘛?我们从00000000试到99999999,总有一个对吧?

这个方法理论上可以,但是实际上行不通,原因又两个:

1,按照粗略结算,关把这些1亿个指令发给iPhone尝试,就要35天,

并且还不考虑iPhone算需要多久。

2,最关键的,iPhone的baseband NOR seczone中,有一个NCK计数器,一旦你尝试3–10次失败,

你的baseband将会硬件烧死在AT&T上。

 

所以,目前来说,iPhone完美解锁,还没有,相信如果Apple不出大错误,也不会有,

除非Apple到时候官方推出解锁,那才是完美解锁。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有