@Planetbeing访谈:关于越狱的前景

iPhone 5上越狱现在看来很有希望。因为就在前两周,两名越狱圈的巨星级人物——Chronic Dev团队前成员Cyril Cattiaux(@pod2g)和iPhone Dev团队的David Wang(@planetbeing)重新浮出水面,发了各种展现他们进展的推特消息,这些推特消息都是关于大家最感兴趣的iPhone 5/4S和其他设备上的正常越狱的内容。

前些日字Reddit上引起了轩然大波,原因是@planetbeing 正面回复大家,声称他的iPhone5上正运行着iOS6.0.2的正常越狱,而且会被放出来,但是具体预计时间未知。

我不知道为什么这么多人都在担忧什么,事实上,我的iPhone5上运行着iOS6.0.2的非引导越狱,没有放出来越狱的原因有两个:

  1. 放出来这个越狱会浪费我们保留给自己的一些漏洞,而这些漏洞浪费了就会对越狱前景不利。

  2. iOS6.1很快就要出来了,我相信它会修复很多漏洞,现在放出我们的越狱也许就会让苹果知道那些他们原本可能不知道的漏洞。我们已经能够找到4个以上的漏洞(开发这个越狱用了这么多漏洞),那么我们相信肯定还存在更多的漏洞,尽管越狱变的比较困难,但是越狱消失的言论是有点夸张了。

重新点燃了希望后,经历了三个月没有越狱的痛苦煎熬后,越狱圈终于能够得到一点点满足感了。很多人向@planetbeing 公开表示感谢,感谢他带来的消息,这让很多人都重新陷入了对越狱还有那些离不开的插件的怀念和对越狱的憧憬。

就像一个Reddit用户上周五所说的:

我觉得最值得高兴的是知道幕后还在有人不停地去做这个事情。太多越狱开发者认为我们需要听到详细得进程报告,但对于我来说不是这样。有些时候,像“嘿,我们还在努力探索,开发中”这样的一个公告都能非常振奋人心。

现在传言说iOS6.1的GM版会很快公布给开发者,希望这能代表iOS6,6.0.1,6.0.2或6.1的iPhone5和其他设备的越狱不会太久。

似乎@planetbeing 看到了上面这位Reddit的用户表达出来的感谢与心情,我们看到他最近在Twitter很活跃,不断地发布关于他在黑入iOS6内核的一些进展,其中自然有成功也有挫折。

Pic2

他在周日的一篇推文尤其吸引了正在等待iOS6越狱的人们。看来David Wang(@planetbeing)(Hum语:以后叫他王大卫!或者王大胃!)不仅仅要传达越狱的进度,还似乎要将未来的越狱变得更加简单。

以下是他的推文:

正在写ARM反汇编程序,在PIC(功率集成电路)时代应该可以自动发现越狱补丁。在想要不要以后把这个开源。用这个我们可以大量给变量打补丁,而不是给文字打补丁,介于iBooks对文字补丁如此敏感。有趣的是,我向来都是去看《iOS黑客手册》去寻找哪些需要打补丁,而不是去看那些代码。

这个推文没多久就让@planetbeing 被at爆了,包括最近很安静的iPhone Dream团队成员,JoshuaHill(@p0sixninja)。

你还没记住这些东西呢啊?我上个月就做了这个,你问我就好了。

这个时候,越狱圈的另一名名人,Joshua Tucker也带着笑话进来了。

这不就跟别的差不多么?你把它写下来了所以你不会忘记?

@p0sixninja 继续附加道,

我不知道别人是怎样的,但是我自己已经做过太多次了,我甚至做梦都梦到给内核打补丁。

然后@planetbeing 谦虚地答道

我还没有达到能够记住(并补住)八个独立补丁的程度。

然后@joshmtucker 附上了他最后的笑话,

我觉得Josh(@p0sixninja) 在说谎,我认为他把这些东西都印在卡片上然后塑封了起来。

Pic3

左侧数起: Joshua Hill(@p0sixninja), Joshua Tucker(@joshmtucker)


在Twitter上的口水战继续了下去,吸引了众多像我这样的Twitter用户。尽管我对内容不甚了解,但是和很多人一样,我觉得这是对iOS6,6.0.1,6.0.2和6.1 的iPhone 5,4s还有其他设备的正常越狱成功与否的重要谈话。

在这个节骨眼上,身为一个爱管闲事儿的越狱写手,我决定给David发邮件,问问他推文里写的东西到底是什么意思。让我吃惊的是,两个小时之后他给我发了一封很长很详细的邮件,但是我到现在还没太懂。我很想把整篇邮件都发出来,但是这是一封一千多字的邮件。那我之后把其中的净化提取出来,然后用我自己的方式去解释。

我必须像@planetbeing 在邮件中提到的那样来警告大家:

这东西想解释明白不得不写长篇大论,做好心理准备……

来自@planetbeing:

越狱的最终目的就是要在内核上打一些补丁,让那些没有被认证的代码能够去执行,然后能够让像MobileSubstrate这样的软件在程序运行的时候重写代码,去允许插件附着到那些功能上,从而改变功能的行为。

我们需要在部分内核代码在内存中的时候去打补丁,所以我们需要知道什么部分需要被打补丁,然后还要知道如何去打补丁。这样我们就能改变那些内核的功能,来达到我们的目的。

寻找这些需要打补丁地方的最常见的方法就是通过反汇编程序,通过它去寻找这些在老版本iOS中需要打补丁的功能,然后在那些位置打补丁。同时,在搜索的过程中,我们时常需要寻找允许我们利用的系统中的功能或硬件。因为我们需要确切得知道这些东西的位置,然而这些位置会因为苹果在其他位置修改的代码而变化,也会因为不同的汇编方式而变化,同时不同的硬件和软件版本里,这些东西的需要打补丁的位置也都不一样,所以如果挨个设备挨个系统去寻找,工程量太可怕了。所以我们经常会写一个软件帮助我们去自动发现这些东西。

当提到他的软件会对对开发以后运行iOS6,6.0.1,6.1的iPhone5,4S和其他设备的越狱时,会又有什么样的帮助,和他为什么要开源这个软件时。他是这么回答的:

这东西已经很开源了,因为这对越狱来说很常见,这跟发现系统漏洞和弱点无关,所以苹果也不能,或者说没法修复。把这个引擎在寻补丁上做得更加智能也是很多人可以去研究的问题。但是这个东西不会加快越狱的速度,而是会把那些比较无聊的工作变得容易一些。

这里我要补充一下-当他讨论到寻找这些地址的时候,这绝对不是容易的事情。近年来,苹果正在加强它自身软件的安全程度,最为明显的就是ASLR(Address space layout randomization – 地址空间布局随机化)的加入,在系统启动的每一层级,内核,用户,软件,沙盒机制等都囊括了ASLR。

那么什么是ASLR? 让我来解释解释。在过去的越狱时代,如果你想运行为认证代码,你只需要在缓冲区溢出部分运行你的代码,让处理器去执行,但是现在不行了。数据现在不再能够执行代码,因为有了DEP(Data Execution Protection-数据执行保护)的加入。

越狱开发者和黑客们显然没有被这个打败,ROP-Return Oriented Programming(回导向编程)出现了。ROP简单来说就是把功能末端和未认证代码连接在一起。Comex在他的越狱中利用了一个ROP负载方法。但是,你依然需要知道这些功能的确切地理位置,这也就是为什么苹果加入了ASLR-地址空间布局随机化。

ASLR的工作就是随机化这些功能地址,让ROP没法工作。但是这帮聪明的家伙们,找到了信息泄漏,通过这些信息泄漏去计算随机地址,然后从那里,他们创建了动态ROP代码。

(以上信息要感谢@p0sixninja,我只是把它重新写了一下, 相信我,我没那么聪明)

Pic4

iPhone Dev团队:Nikias Bassen @pimskeks, David Wang(王大卫,记住这个爱称!)@planetbeing, Joshua Hill @p0sixninja


如果你已经头晕眼花,没事儿。。。你过几天再读一读,可能还会比较晕,但是你至少会对他们为了开发你手中的越狱的过程有一点了解了。

那么你要从这文章中带走什么呢?

为了帮助开发iOS6,6.0.1和6.1和未来系统越狱的工具软件已经被开发。尽管苹果添加了如PIC和iBooks中的那些挑战(我会根据这篇文章的反馈,看看是否需要把iBooks那个单独拉出来写),但是@planetbeing 和其他人不会被打败。

他发布的那些推文就像小栏报导,但是足以让我们知道,直到苹果开放系统之前,@planetbeing 和其他开发者、开发团队不会轻言放弃。

当我问他有没有想过退出越狱这个圈子,或他有没有希望有新的血液注入的时候,他这样回答我:

我对越狱又愛又恨。我愿意在我能帮助的地方出力,但是只要还有越狱,是谁做的我都无所谓。

我不知道你怎么想,但是在我看来王大卫(@planetbeing) 很可能是我最喜欢的开发运行iOS6的iPhone5越狱开发者了。

我们下次再见,别忘了向David (@planetbeing),Joshua(@p0sixninja),Cyril(@pod2g),@MuscleNerd和其他越狱开发者表示最诚挚的谢意,感谢他们的辛勤劳动。

Pic5

iPhone Dev团队,从左: @iOPK, @p0sixninja, @pod2g, @pimskeks, @planetbeing

原文来自:idigitaltimes

翻译:@米斯特苹果