如何破解iPhone并为1500万用户提供服务

2014年夏天,我和我的朋友们去散散步,发生了历史性事件。 拍摄视频时,iPhone 5C突然从我妻子的手上摔下来,摔到了水泥地板上。

在那一刻,在我看来这是一个可悲的情况。 但这恰恰是启动该服务的动力,该服务现已为1500万用户提供服务。

iPhone与它有什么关系? 什么样的服务? 所有这些如何连接? 下切答案!



前言


在本文中,我想与您分享2014年以来的事件。 我会告诉您一切,就像我记忆犹新时一样,并分享尚未发布的任何信息。


就像任何人在自己喜欢的小工具上感觉到碎玻璃的苦涩一样,我想尽快修复它。 显示器本身并未损坏,维修只是触摸屏玻璃的替代品。 一位朋友在基辅推荐了SC,我在那里打了电话。 他被重新拍了下来,然后送回了我。 我迫不及待想通过邮件收到电话。

我一收到它,另一个失望就在等待着我。 触摸屏已更换,但显示屏边缘有黄点。 在SC中,他们向我保证要修复它,或者用显示器的原件替换它。 由于仍然在玻璃下面发现划痕,因此我决定完全更换显示器。

一周后,我拿回了手机,结果发现显示器不是原始的。 即使在表面本身上,也很明显它与身体成一定角度。 而且色彩更加暗淡,这清楚地将显示与原始显示区分开。 原来,很难找到iPhone的原始显示器。 我决定忍受这种情况,并在将来的某个时候将iPhone更改为较新的机型。

几天过去了,我慢慢适应了中文显示。 我坐在扶手椅上,电话从口袋里滑了出来。 他跌倒在木地板上,玻璃再次破裂。 装有原装玻璃的手机跌落了很多次,但直到摔倒时才崩溃。 但是中国人,弯曲的玻璃杯,在第一次尝试时就破裂了。



意识到无法买到原始玻璃杯,我想到了寻找捐赠者的想法。 我开始寻找一款在olx上出售的iPhone。 事实证明,许多人对iCloud功能“查找我的iPhone”有疑问。 这些电话无法激活,并且在您输入Apple ID或所有者将电话从其帐户中删除之前,它们一直处于休眠状态。

我找到了一个捐赠者,iPhone 5C处于良好状态,已被锁定在操作员和iCloud下。 显示屏成功接近了我的手机,终于一切都准备就绪。 我决定保留绿色的iPhone,以防万一,作为捐赠者。 最终,我能够冷静下来,而忽略了这个问题。

接下来是什么?


几个星期过去了,绿色的iPhone 5C躺在显示器下方的我的桌子上。 但是我不时地想起他,因为出于习惯我不喜欢闲置的东西。 因此,该手机与未知的操作员绑定在一起,即使玻璃破碎,iCloud也无法感觉到。 但是关于手机理论上可以解锁的想法(仍然以未知的方式)并没有离开我。

道奇


一般来说,我开始使用google,阅读论坛。 我找到了关于doulCi的信息(名称并不奇怪,但它几乎是向后的iCloud)。 由一群发烧友组成的团队启动了服务器来绕过FMI的早期iOS 7固件,他们启动了MITM并将包从解锁的iPhone交换到锁定的iPhone。 通常,当时Apple并未检查程序包是否符合Serial / IMEI,doulCi成功使用了此功能。 他们很长时间没有为服务器工作,但是他们设法解锁了大约7万台设备。 那些设法连接到其服务器的人收到了无法使用SIM卡的工作设备。 然后,他们的一个团队将源泄漏到了Internet,苹果成功地修补了这个漏洞。 在这个阶段,他们的团队破裂了,每个人都以不同的方式前进。 他们的服务器不再工作。

那时候我当然不知道。 我去了他们的官方网站,看到那里的计时器,说:“等到星期五16:00,那么我们将启动服务器并免费解锁它。” 到处都有输入IMEI和注册的字段。 所以我决定等待这个小时。 时间到了,我设置了一个闹钟以免错过,我准备好了USB电缆。 时间到了,我去了他们的网站,在那里一切工作都重新启动了服务器。 我试图等待,结果一切都是广告的诱惑。 这让我非常困扰,但我不会停下来。

代理服务器


后来,有关代理服务器的新闻开始出现,称通过连接到它们,您可以转到网页。

在Apple发出的页面中



通过单击“激活帮助”,用户被带到带有文本的页面。 但是苹果开发人员错过了一个小细节,该链接并没有导致HTTPS,而是导致了HTTP地址。
http://static.ips.apple.com/deviceservices/buddy/barney_activation_help_en_us.buddyml
由于未加密流量,因此可以拦截和替换流量。

服务器一直在下降,我发现的最好的是niltpH服务器。 但是他不断地更改端口,以使用户经常访问他的站点,或者服务器无法忍受它,因此他卸下了负载。

我一直想知道如果可以转发DNS查询,为什么要创建代理?
无需繁重的工作,服务器将始终处于联机状态。 但是只有代理服务器。

然后一波骗子开始,他们开始大规模代理服务器。
显示一个页面以支付不存在的完全爬网的费用,许多人遭受了这种虚假服务的折磨。 代理服务器使您可以完全控制流量。 因此,坏人偷走了密码和信用卡,并且用户认为这是可行的,因为他们的设备进行的任何更改都是可信的。

苹果没有做任何改变,但我做到了。 作为我进一步行动的结果,没有人可以在搜索引擎中找到代理服务器欺诈者。

第一台iCloud DNS绕过服务器


解决后,我将启动服务器。 十二月的一个冬天晚上,我开始开发。 要实现我的想法,我需要一台HTTP和一台DNS服务器。 我决定使用Visual Studio 2010用C ++编写这两种服务。直接使用字节套接字而不使用第三方库来处理套接字。

DNS协议并不复杂,对于一个UDP请求,一个答案,每次都具有相同的结构。 我花了几个小时写了一个简单的DNS服务器,它用static.ips.apple.com上的静态IP地址回答,其余的我从Google那里获取DNS。

然后,我开始编写HTTP服务器。 第一步是简单地生成一个HTML页面。 程序启动时将其加载到内存中,然后将其分发给向端口80发送请求的每个人准备好的数据包。 因此,无论指定的主机是什么,我的程序都会向发送请求的每个人返回一个页面。 一切都在浏览器中正常运行,但是在Wi-Fi iOS设置中注册DNS,单击“激活帮助”,我在手机中收到错误消息。

在分析流量之后,事实证明Apple使用XML文件,并为它们生成一个远程接口。

可以在激活帮助链接上查看示例代码:
static.ips.apple.com/deviceservices/buddy/barney_activation_help_zh_CN.buddyml

这是服务器要求在锁定设备上输入密码的响应:

 <xmlui> <script><![CDATA[function enableNextButton(){ var fieldPassword = xmlui.getFieldValue('password'); if (fieldPassword && fieldPassword.length >= 3) return true; return false; } function validateForm() { var fieldLogin = xmlui.getFieldValue('login'); var fieldPassword = xmlui.getFieldValue('password'); if (fieldLogin == 'test') { xmlui.setFieldInvalid('login', false); xmlui.alert("Test!"); } else { xmlui.setFieldInvalid('login', true); xmlui.alert("Value entered is not 'test'."); } }]]></script> <page> <navigationBar title="Activation Lock" loadingTitle="Activating..." hidesBackButton="false"> <linkBarItem position="right" label="Next" httpMethod="POST" url="/deviceservices/deviceActivation" style="blue" enabledFunction="enableNextButton"/> </navigationBar> <tableView> <section footer="This iPhone is linked to an Apple ID. Enter the Apple ID and password that were used to set up this iPhone."/> <section footer="  : This iPhone has been lost. Please call me. (123) 456-1234"/> <section footer="  " footerLinkURL="http://static.ips.apple.com/deviceservices/buddy/barney_activation_help_ru_ru.buddyml"> <editableTextRow id="login" label="Apple ID" placeholder="example@icloud.com" disableAutocapitalization="true" disableAutocorrection="true" keyboardType="email"/> <editableTextRow secure="true" id="password" label="" placeholder=""/> </section> </tableView> </page> <serverInfo isAuthRequired="true" activation-info-base64="      "/> </xmlui> 

研究了源代码之后,您可以了解该代码具有JavaScript,并且可以在标签<![CDATA [..]]>中使用

那时,现有的代理使用一个带有HTML代码的页面。

 <xmlui> <page> <navigationBar title="Games" loadingTitle="Loading..." hidesBackButton="false"> <linkBarItem position="right" label="Next" httpMethod="POST" url="/deviceservices/deviceActivation" style="blue" enabledFunction="enableNextButton"/> </navigationBar> <htmlLabelRow> <![CDATA[<html>   HTML  </html>]]></htmlLabelRow> </page> </xmlui> 

在电话上,您可能会看到一个简单的站点,而不是激活文本。 Cookies有效。 但是,通过单击任何外部链接,所有样式都会误入歧途,随后的过渡是不可能的。 这就是代理服务器当时的工作方式。

几个小时后,我有了一个正常工作的DNS和HTTP服务器,该服务器返回1页的任何请求。 事实证明XMLUI是带有未知参数的标记,这些参数在任何地方都找不到。 现在,任何地方都没有文档。 苹果仅在其产品内部使用它。

实际上,标准的iOS元素是由XMLUI生成的,即使是那些脱机工作的元素也是如此。 列表,按钮,图标,日期和时间的选择,子菜单,所有这些仅仅是将类似脚本的XML即时转换为接口的结果。

意识到iOS中许多界面都是如此笨拙的方式使我有些失望。 在这种情况下,您期望所有操作都已尽可能最佳地完成,并且事实证明该层上有一个层。

然后我意识到,从理论上讲,如果您知道界面的布局,则可以生成带有图标和链接列表的非常舒适的本机iOS界面。 如iOS中的设置。 并将其完全替换为激活对话框。

从已经保存的代码中我所了解的就是,有一个表可以添加许多<section footer,可以引用其他XMLUI文件。 使您的XMLUI服务器具有一些信息是很有可能的。 但是我想获得网站的确切列表,以便例如去Google。

如何在不知道命令的情况下建立标记界面?


我想到的第一件事是,由于iOS生成命令,因此它比较XML参数的字符串,因此必须将它们存储在固件中的某个位置。 理想情况下,您将找到一个包含命令列表的文件,可以尝试将这些命令添加到XMLUI代码中,但是没有,这没有发生。

当时,iPhone 4已被完全入侵。 在此,您可以从引导加载程序下引导并获得对文件系统的完全访问权限,这与是否有来自iOS的密码无关紧要。

我发现从iPhone 4下载了iOS 7固件并开始选择它。 我从收集的XMLUI文件中收集了一些著名的单词列表,并开始逐字搜索所有固件文件。 乍看之下,这是一项无用的练习,可与在大海捞针中找到针头相提并论,但是由于某种原因,我确信自己会找到一些东西。 一个多小时过去了,我什么都找不到,但是文件dyld_shared_cache_armv7引起了我的注意。 它的重量高达300 MB,而整个固件的重量约为1 GB。

原来,它是动态库的“包”。 为了不使文件系统过载,Apple将所有系统程序的所有动态库打包为1个文件。 我使用Apple的开发人员工具解压缩了该文件,并收到了大量文件。 我开始再次从他们的数据中搜索列表中的单词,尝试合并并选择它们。 我开始寻找样式相似的拼写-几个单词,第一个带有小写字母,其余的带有大写字母,没有空格或下划线。

经过无数次尝试,我终于找到了htmlButtonRow这个词。 如果将其粘贴在代码中,则会出现错误,因此它会以某种方式受到影响和被识别。 下一步是选择位置,在哪里粘贴?

最终,代码成功了,我得到了梦co以求的菜单栏:

  <tableView> <section> <htmlButtonRow name="  "> </htmlButtonRow> </section> </tableView> 

仅显示一行,并且在按下文本时什么也没发生。 但是htmlButtonRow部分的名称是关于HTML的,这意味着您可能可以在其中添加页面代码。
使用<![将CDATA插入按钮中,将HTML代码插入按钮。 甚至获得了从按钮到网站的过渡。

我得到了想要的东西,这是一种显示不同站点的清单并转到它们的方法。 然后,我开始开发XMLUI代码生成引擎。 我编写了一个按钮的必要参数的列表,并放置了指向图片,文本的链接以及指向该站点的链接。

结果是这种文本配置文件:

 [Section] Name=Facebook Url=menu://https://m.facebook.com/ Img=https://iclouddnsbypass.com/Icons/B5w8iLX.png 

在其中,我创建了一个受欢迎的站点列表。

接下来,我制作了添加了按钮的页面模板,所有内容均静态存储在内存中,并按需发布而无需访问磁盘。

几天后,我更正了所有错误,并且服务器已准备就绪,可以持续启动。 第一个版本的iCloud DNS绕过于2014年12月25日发布。 我在有关iCloud绕过的线程中在w3bsit3-dns.com上写了DNS服务器地址,同一天,网站主持人写信给我,建议创建一个单独的分支。 谁在乎 ,这是指向论坛线程w3bsit3-dns.com链接

结果,一切看起来像这样:



但是由于界面本身的限制,只能跟踪该链接,并且随后无法过渡到第三方站点。 结果,每个人只能使用我添加到服务器的站点列表。

对iCloud DNS绕过进行故障排除


发布后的几天,我的朋友Dybik创建了一个包含服务器信息的网站。 我在VK中创建了一个小组,并与服务器用户进行了交谈。 事实证明,在新的iOS固件上,HTML点击链接不再起作用。

当时,已经有大约500位唯一身份用户建立了联系,所有的评论使我相信我正在做一些有用的事情。 我一直梦想着启动一个大项目。 这些想法使我坚强不屈。 我再次开始寻找XMLUI值名称,我确信还有许多其他有用的命令。

再花3-4个小时的努力搜索和反弹后,我终于找到了一个有用的标签
<linkRow及其参数附件=“ disclosure”,使按钮成为子文件夹。 这正是您所需要的,该列表可在所有iOS上使用,并具有更原生的外观,因为不再有HTML。

最终的按钮代码如下:

 <linkRow accessory="disclosure" label=" " image="https://" shouldScaleHTMLPageToFit="true" url="http://   .buddyml" httpMethod="GET"/> 

他们开始向我发送有用的链接,这些链接已添加到菜单中,并形成了一个大列表。 他们还发送了崩溃信息,我将其添加到菜单中,每个人都可以尝试。

我还制作了一个语言引擎,根据用户的语言替换了文本。 他邀请所有人进行翻译,随着时间的推移,他们向我发送了来自不同国家的翻译。 现在,由于志愿者的帮助,服务器界面已被翻译成50种语言。 我还对语言的网站列表进行了限制,例如,俄语显示为中文,中文显示为俄语。 添加了基于tlk.io的聊天,但后来由于垃圾邮件发送者而建立了自己的引擎。

图片图片图片

此外,我还找到了参数shouldScaleHTMLPageToFit =“ true”,该参数将浏览器的视图带到需要移动的位置。 在此过程中,我发现另一个最重要的参数是ModalHTMLView =“ true”。 有了它,我就能够将网页扩展到全屏显示,旋转屏幕和所有没有错误和限制的链接单击。 重新启动后,Cookie也起作用,因此我使用它们来计算用户数。 这是世界上首次使用完整的浏览器,而在锁定的iOS设备上没有选项卡。

另外,通过HTML照片上传按钮,每个人都可以使用相机,并以相同的方式打开手电筒。 我添加了一个收藏夹列表,您可以在界面中添加它。 菜单中有广播电台,可以打开音乐,然后使用特殊按钮打开另一个选项卡,而前一个则起作用,并且多任务处理已完成。

事实证明,有些用户无法连接到服务器。 造成这种情况的原因是路由器或提供商用自己的DNS查询替换了所有DNS查询。 而且无法用我的服务器替换域。 然后,我为Windows开发了一个小程序,该程序启动了内置的DNS服务器,该服务器有助于连接到本地网络。

这是有关iCloud DNS绕过的EverythingApplePro频道的YouTube视频,您可以在其中观看当时的界面。


两个月后,已经有超过20万台设备连接到服务器。



这是一个视频,您可以实时查看当时服务器上的请求


但是要使Apple注意到它们在标记中有一个标记,必须再连接30万台设备。

另一波骗子


在Internet上启动两个月后,除了我的服务器以外,找不到其他任何解决方法。 这结束了欺诈性代理勒索金钱的行为。 但是在eBay上开始出现一波广告,他们开始以30至50美元的价格出售“ iCloud旁路”。 锁定设备的天真和绝望的所有者很容易操纵,骗子使用了它。

骗子为“解锁服务”付款后,就向买家提供了有关如何连接到我的免费服务器的说明。 许多人甚至没有怀疑他们被抢了。 我很生气,想做些阻止他们的事情。

我用所有语言编写了一个消息页面,这样,当每个人都连接时,他们就知道服务器是免费的。 这样的题词仍然保留在服务器界面中。 他还抱怨eBay上的欺诈行为,但是这场战争是无止境的。

我收到了很多封信,并且抛弃了他们发现的有关黑客的一切信息,我在服务器上发布了内容,并尝试了一切。 有时原来是转到台式机,有时又全部解锁了(它只能与通过站点擦除的设备一起使用,在将其重新启动之前,该界面会使其陷入正常工作状态)。

使用发送给我的信息,事实证明,有很多来源提供解锁设备的作用,以使钱真正起作用。 我试图弄清楚如何与整个社区共享,以消除对付费服务的误解。

用户收到锁定的设备的原因如下:

  • 忘记了您的Apple ID密码并丢失了支票
  • 在不知道设备已锁定的情况下购买了设备
  • 他们成为勒索软件的受害者,并失去了访问其Apple ID的权限
  • 发现设备处于丢失模式

现在,我可以自信地说,只有两种方法可以完全解开它:

  • 网路钓鱼,窃取拥有者的密码并从其帐户中移除装置
  • 收到原始支票后,支持Apple的电话取消了未处于丢失模式的设备的联系
  • Pasha4ur焊接iPad的调制解调器或电阻器方法

去年,网络钓鱼服务被大量分发,作为回应,苹果公司甚至从锁定设备屏幕上的所有者那里删除了该消息。 但这不是网络钓鱼攻击广泛发生的原因。 有一些来源从Apple ID帐户出售用于攻击的资金的信息。 他们仅在中国日历的假期停止工作。 这些极有可能是在中国的Apple员工,他们正在从Apple Care管理员区域复制信息。 我决定检查收到的信息,结果一切都是真的。 没有地址信息,电话号码,安全性问题,没有密码也没有答案。 然后,我尝试与Apple联系,以了解发生了什么情况,而我的来信被成功忽略。 因此,请避免窥探您的IMEI / UDID,在Apple ID中最好不要写真实的信息。

应急预案


我怀疑苹果公司是否会注意到HTTPS链接中的漏洞,而且一口大口的iCloud DNS绕过服务器将停止为所有设备工作。 探索替代方法使我创建了Captive Portal。 在必须连接到Internet之前必须在站点上输入号码的情况下,许多酒店,机场都使用此机制。

关于俘虏门户的信息也很难找到。 没有人尝试过通过DNS服务器启动授权门户。 经过几天的研究,我成功地启动了自己的Captive Portal。 一切都像在普通浏览器中一样工作,单击所有链接即可不受限制地工作。 通常,我已经准备好让Apple纠正该缺陷,但是关闭门户网站后Cookie被擦除的事实使我感到困惑。

那时,XMLUI方法非常有效,我回复了电子邮件,我对与人交流很感兴趣。 在YouTube中,许多人拍摄了有关我的服务器的视频,每个人都共享了有关搜索的信息,以进行完全爬网。

脱机模式,没有Internet的成熟文件管理器


自服务器启动以来已经过去了半年,Apple并未考虑更正标记页面。 我不记得确切的时间,但是很无聊,我开始尝试通过XMLUI读取iOS文件系统。 我成功了,我可以从文件系统中打开文件,并且事先知道它们的路径。

我有个主意,如果您将程序中的所有文件从计算机拖放到设备上的可写文件夹中,则可以创建文件管理器。 这样一来,仍然可以在锁定设备上无需确认即可访问文件,现在在iOS 10上将不再起作用。

我在代码输入字段中解锁了文件管理器所在的测试按钮,并邀请了几位志愿者进行测试。



可以上传任何格式的文件并在设备上打开。 我还将所有菜单和子菜单合并到一个文件中,从而可以将它们一次下载到设备上,然后在没有Internet的情况下使用它。 我想与服务器用户尽快共享新功能。 首先,您必须创建一个程序,将文件系统的结构与服务器同步,并通过向用户提供设备中的文件列表来识别用户。

我参与其中,因此开始发展。 已经过去了多个小时,并且具备播放列表和选择曲目功能的音频播放器已经准备就绪。 第二天早上,电子邮件向我下雨,服务器已关闭。 我检查了所有内容,服务器正在运行,数百名用户在线。 但是只有幸运的人没有离开服务器。
2015年5月13日,Apple开发人员注意到一个漏洞,并修复了HTTP到HTTPS的链接文本。

一夜之间,所有设备都停止连接到服务器,然后转回无用的带有苹果徽标的烙铁。有一次,文件管理器的整个开发变得毫无用处。没有人发现我要开始这种模式。现在,要返回此方法,您需要在设备中为albert.apple.com域安装一个自签名证书,到目前为止这是不可能的。在修复错误(由于旧方法不再起作用)时,已连接了五十万个唯一设备。



我立即开始启动Captive Portal,并将整个菜单移至web选项。该接口基于Framework7,我将其修改为旧的菜单配置文件。在同一天,服务器以新外观启动,并且仍位于该服务器中。


在Facebook上,我有一个iCloud DNS绕过页面,其中仅发布新闻和服务器更新。一年多过去了。由于某种原因,Apple不喜欢它,有一天(很好),我看到了以下消息,没有任何警告:



后来CloudFlare发送了一封电子邮件,其中包含来自Apple部门的某人索要我网站的真实IP地址,因为它侵犯了他们的版权是的尽管我不了解违规是什么,但我很高兴这是全部而有限的。一直以来,Apple从未尝试直接联系并要求删除他们不喜欢的内容。

如此具有讽刺意味的命运,如果我的妻子没有丢下电话,如果我没有为了放松和实现我的想法而分心于主要项目,那么今天的iCloud DNS旁路服务器将不复存在。

现在,唯一身份用户的数量已超过1500万,每天连接50-60 000个唯一设备。

服务器的当前版本可在当前存在的所有iOS上运行。基于Captive Portal的iCloud DNS绕过仍然没有替代方案。自启动以来,服务器一直在全天候工作,捐款足以租用设备。到目前为止,所有HTTP连接都由一个用C ++编写的程序提供服务。

以下是来自已连接iCloud DNS绕过的Apple设备被屏蔽最多的国家/地区的统计信息。目前总数为1530万。



是的,您可以按照本文视频中的说明进行操作,以在非锁定设备上尝试使用Captive Portal。而且,您也可以简单地通过任何浏览器进入ui.iclouddnsbypass.com页面

后记


我希望我不会对我的故事感到厌烦,这对你很有趣。我们的世界没有任何规则,您已经工作了两年的项目可以用铜盆覆盖,而您花了两周的业余时间就可以变成为数百万人提供服务的服务。我希望您不要对工作感到无聊,而不要因自己真正喜欢的东西而分心。

Source: https://habr.com/ru/post/zh-CN405437/


All Articles