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