首页
论坛
课程
招聘
[翻译]越狱主要步骤揭秘
2018-12-1 19:15 6417

[翻译]越狱主要步骤揭秘

2018-12-1 19:15
6417

越狱过程一直是个神秘的过程,iOS系统在运行了一个应用程序几秒钟后突然摆脱了苹果的束缚。在很长一段时间里,这个应用程序的运行期间究竟发生了什么在很大程度上是未知的,甚至直到今天,直到iOS 11(实际上,是12),最终用户(即临时用户、eta民间用户、重定向器或者唠叨)仍然对正在进行的进程基本上不求甚解。在这篇博客中,我将试图解释历史上实现和使用越狱的主要要素。这篇文章并非包罗万象,各种iOS版本的各种越狱工具可以使用不同的补丁程序和技术,但它们的确基本上都浓缩到您将要阅读的内容中。

为什么叫越狱?

这个过程的命名可能来自苹果的“Jailed(监禁)”方法。应用程序和用户必须只使用苹果提供的,这只是该设备能力的一小部分。打破这个监狱的限制是整个越狱进程的愿景。

eta folk, reditter, nagger, et. al.

不,Cydia和越狱本身没什么关系。Cydia是越狱“社区”的副产品,不是只要有了Cydia,越狱就会被称为越狱,就像越狱缺乏Cydia仍然是越狱。区别在于他们的目标群体(或者说用户基础)。

 

Cydia是一个GUI(图形用户界面)应用程序,它在后台使用dpkg和apt(以及其他)安装.deb(Debian)包。这些软件包遵循一种非常严格的格式(要我说是太严格了),我将在后面讨论。正如聪明人可能已经想到的,您不需要Cydia来安装包。由于Cydia依赖于apt和dpkg(等等),您可以简单地通过SSH或者通过设备上的移动终端应用程序使用这些二进制文件。Cydia正是为了让这个过程尽可能简单。也有可能更复杂。

 

所以,是的,我的iOS 11.3.x/11.2.x 越狱,Osiris,早在Electra还没成型之前就发布了,过去和现在都是越狱,尽管我从来没有用过任何GUI安装程序(Cydia或者类似的)。同样的情况也适用于Jonathan Levin(iOS 11到11.1.2)的LiberiOS,这可能是迄今为止最稳定的iOS 11越狱。这些越狱事件主要针对研究人员和高阶玩家,而不是小白(他们通常因缺乏Cydia而大发雷霆)。

那么它是如何运行的呢?

越狱必须运行在能够打开Cydia、Installer 5、Icy Project或设备上的SSH之前。越狱的步骤取决于iOS版本和设备。它以前对设备类型的依赖较少,但是随着iOS 9.0上的KPP(内核补丁保护程序)和iOS 10上的KTRR(所谓的内核文本只读区域)的出现,现在,越狱成功的几率与设备型号越来越相关了。例如,iPhone 7之前的设备使用KPP,它是在EL3(ARM异常级别3)中运行的软件保护,但是iPhone 7和更新的设备使用基于硬件的KTRR。在这种情况下,只包含KPP绕过(比如Yalu)的越狱程序在iPhone 7上无法工作,而且更新版本也不行,因为KPP本身并不存在。然而,多亏了@xerub和“KPPLess”的方法,Yalu支持了iPhone 7。通常,对于这些设备,需要某种KTRR绕过,正如siguza在他给KTRR准确命名的文章中所解释的那样。因此,通过这种方式,越狱工具必须非常清楚,它处理的是什么类型的设备。

越狱的历史?不早于Pangu的iOS 7 x.x之前

在设备上发生任何事情之前,必须以某种方式将jailbreakpayload部署到设备。这在今天听起来可能非常微不足道,因为任何人都可以获得一个免费的苹果开发者帐户来签名一个IPA文件,并通过CydiaImpact或类似工具将其安装到的设备上,但是它以前并不这么简单。苹果公司通过iOS 9.0向大众介绍了这个带有配置文件的自签名,这在越狱的历史上并不久远。

 

在那之前很久,CodeSign被技术高超的越狱团队以非常有趣的方式绕开了,不幸的是,这些团队已经消失很久了。如果你还有积灰的iPhone 4,那么你很有可能使用Pangu for iOS 7.1 - 7.1.2越狱。小聪明们可以很容易地看到,由于这里讨论的是iOS 7.1.x,因此使用免费配置文件进行自签名和部署签名的IPA是不存在的。那么他们的技巧是什么呢?

 

Pangu for iOS 7.1-7.1.2有自己的Windows和macOS程序为您进行部署。它安装的应用程序(就称为“Pangu”吧)用当时存在的企业证书进行签名,这是很强大的东西,但是在黑市上不像今天那么容易获得(所以出现了这些签名服务,如Ignition和AppValley)。

 

然而,他们的证书过期了。电脑上的Pangu程序提示用户将设备的日期和时间设置回2014年的日期(更具体地说,是2014年6月2日)。
虚拟应用程序由盘古程序部署,它的主要目的是丢弃这个宝贝证书。IPA本身实际上是盘古Windows /MACOS二进制本身的一部分。使用任何反汇编程序(我使用JToo工具和IDA)很容易被发现。Jonathan Levin的Jtool具有一个可以生成HTML输出的牛逼功能(!)当我写博客时,这是非常有用的。

 

下面是Pangu二进制在MaOS上的样子。看到那个多出来的段了吗?

  LC 00: LC_SEGMENT_64             Mem: 0x000000000-0x100000000    __PAGEZERO
  LC 01: LC_SEGMENT_64             Mem: 0x100000000-0x101e71000    __TEXT
    Mem: 0x100002370-0x1000292cf        __TEXT.__text    (Normal)
    Mem: 0x1000292d0-0x10002982e        __TEXT.__stubs    (Symbol Stubs)
    Mem: 0x100029830-0x10002a132        __TEXT.__stub_helper    (Normal)
    Mem: 0x10002a140-0x10002a690        __TEXT.__const    
    Mem: 0x10002a690-0x10002b914        __TEXT.__objc_methname    (C-String Literals)
    Mem: 0x10002b914-0x10002b9d5        __TEXT.__objc_classname    (C-String Literals)
    Mem: 0x10002b9d5-0x10002beb6        __TEXT.__objc_methtype    (C-String Literals)
    Mem: 0x10002bec0-0x10002e8d5        __TEXT.__cstring    (C-String Literals)
    Mem: 0x10002e8d6-0x10002e92e        __TEXT.__ustring    
    Mem: 0x10002e92e-0x10003dc04        __TEXT.__objc_cons1    
    Mem: 0x10003dc04-0x10029ed87        __TEXT.__objc_cons2    ; Yeee, see this!
    Mem: 0x10029ed87-0x1002b71a9        __TEXT.__objc_cons3    
    Mem: 0x1002b71a9-0x100f11a36        __TEXT.__objc_cons4    
    Mem: 0x100f11a36-0x10160e0ca        __TEXT.__objc_cons5    
    Mem: 0x10160e0ca-0x101dd6e3f        __TEXT.__objc_cons6    
    Mem: 0x101dd6e3f-0x101dd7152        __TEXT.__objc_cons7    
    Mem: 0x101dd7152-0x101dd7a17        __TEXT.__objc_cons8    
    Mem: 0x101dd7a17-0x101e45a6e        __TEXT.__objc_cons9    
    Mem: 0x101e45a6e-0x101e57e74        __TEXT.__objc_cons10    
    Mem: 0x101e57e74-0x101e69288        __TEXT.__objc_cons11    
    Mem: 0x101e69288-0x101e699e0        __TEXT.__unwind_info    
    Mem: 0x101e699e0-0x101e71000        __TEXT.__eh_frame    
  LC 02: LC_SEGMENT_64            Mem: 0x101e71000-0x101e75000    __DATA
    Mem: 0x101e71000-0x101e71028        __DATA.__program_vars    
    Mem: 0x101e71028-0x101e710b8        __DATA.__got    (Non-Lazy Symbol Ptrs)
    Mem: 0x101e710b8-0x101e710c8        __DATA.__nl_symbol_ptr    (Non-Lazy Symbol Ptrs)
    Mem: 0x101e710c8-0x101e717f0        __DATA.__la_symbol_ptr    (Lazy Symbol Ptrs)
    Mem: 0x101e717f0-0x101e717f8        __DATA.__mod_init_func    (Module Init Function Ptrs)
    Mem: 0x101e717f8-0x101e71800        __DATA.__mod_term_func    (Module Termination Function Ptrs)
    Mem: 0x101e71800-0x101e71b40        __DATA.__const    
    Mem: 0x101e71b40-0x101e71b60        __DATA.__objc_classlist    (Normal)
    Mem: 0x101e71b60-0x101e71b68        __DATA.__objc_nlclslist    (Normal)
    Mem: 0x101e71b68-0x101e71b78        __DATA.__objc_catlist    (Normal)
    Mem: 0x101e71b78-0x101e71ba0        __DATA.__objc_protolist    
    Mem: 0x101e71ba0-0x101e71ba8        __DATA.__objc_imageinfo    
    Mem: 0x101e71ba8-0x101e72f90        __DATA.__objc_const    
    Mem: 0x101e72f90-0x101e73590        __DATA.__objc_selrefs    (Literal Pointers)
    Mem: 0x101e73590-0x101e735a0        __DATA.__objc_protorefs    
    Mem: 0x101e735a0-0x101e736f8        __DATA.__objc_classrefs    (Normal)
    Mem: 0x101e736f8-0x101e73718        __DATA.__objc_superrefs    (Normal)
    Mem: 0x101e73718-0x101e738a8        __DATA.__objc_data    
    Mem: 0x101e738a8-0x101e73930        __DATA.__objc_ivar    
    Mem: 0x101e73930-0x101e74390        __DATA.__cfstring    
    Mem: 0x101e74390-0x101e746b8        __DATA.__data    
    Mem: 0x101e746c0-0x101e74b60        __DATA.__bss    (Zero Fill)
    Mem: 0x101e74b60-0x101e74b90        __DATA.__common    (Zero Fill)
LC 03: LC_SEGMENT_64          Mem: 0x101e75000-0x101eba000    __ui0
LC 04: LC_SEGMENT_64          Mem: 0x101eba000-0x101ebf000    __LINKEDIT
LC 05: LC_DYLD_INFO          
LC 06: LC_SYMTAB             
    Symbol table is at offset 0x1ebbc48 (32226376), 293 entries
    String table is at offset 0x1ebd610 (32232976), 4776 bytes
....

你看见 __TEXT.__objc_cons2 区了吗?

 

你计算一下0x10029ed87 - 0x10003dc04 = 2494851 bytes(十进制)也就是2.494851兆字节。这是一个很大的section。也难怪,它被嵌入到IPA文件中。objc_cons1, objc_cons2 和 objc_cons3 都被嵌入到越狱有效载荷中(untether, plists, libraries等)。

 

多说无益,还是看看吧!

 

Jtool是一个非常强大的工具。它有能力从二进制中提取整个部分。命令是jtool -e(extract)/PATH。如果我们对Pangu二进制文件这样做,我们将得到一个名为pangu.__TEXT.__objc_cons2的新文件,该文件正好能被file工具(1)标识为“gzip压缩数据,来自Unix”,那么tar tvf应该能够很好地列出内容。它确实可以。

Saigon:~ geosn0w$ /Users/geosn0w/Desktop/ToolChain/jtool/jtool -e __TEXT.__objc_cons2 /Users/geosn0w/Desktop/pangu.app/Contents/MacOS/pangu 
Requested section found at Offset 252932
Extracting __TEXT.__objc_cons2 at 252932, 2494851 (261183) bytes into pangu.__TEXT.__objc_cons2
Saigon:~ geosn0w$ file /Users/geosn0w/pangu.__TEXT.__objc_cons2
/Users/geosn0w/pangu.__TEXT.__objc_cons2: gzip compressed data, from Unix
Saigon:~ geosn0w$ tar tvf /Users/geosn0w/pangu.__TEXT.__objc_cons2 
drwxrwxrwx  0 0      0           0 Jun 27  2014 Payload/
drwxrwxrwx  0 0      0           0 Jun 27  2014 Payload/ipa1.app/
drwxrwxrwx  0 0      0           0 Jun 27  2014 Payload/ipa1.app/_CodeSignature/
-rwxrwxrwx  0 0      0        3638 Jun 27  2014 Payload/ipa1.app/_CodeSignature/CodeResources
-rwxrwxrwx  0 0      0       15112 Jun 27  2014 Payload/ipa1.app/AppIcon60x60@2x.png
-rwxrwxrwx  0 0      0       20753 Jun 27  2014 Payload/ipa1.app/AppIcon76x76@2x~ipad.png
-rwxrwxrwx  0 0      0        8017 Jun 27  2014 Payload/ipa1.app/AppIcon76x76~ipad.png
-rwxrwxrwx  0 0      0       75320 Jun 27  2014 Payload/ipa1.app/Assets.car
-rwxrwxrwx  0 0      0        7399 Jun 27  2014 Payload/ipa1.app/embedded.mobileprovision
drwxrwxrwx  0 0      0           0 Jun 27  2014 Payload/ipa1.app/en.lproj/
-rwxrwxrwx  0 0      0          74 Jun 27  2014 Payload/ipa1.app/en.lproj/InfoPlist.strings
-rwxrwxrwx  0 0      0        1955 Jun 27  2014 Payload/ipa1.app/Info.plist
-rwxrwxrwx  0 0      0      312208 Jun 27  2014 Payload/ipa1.app/ipa1
-rwxrwxrwx  0 0      0         968 Jun 27  2014 Payload/ipa1.app/ipa1-Info.plist
-rwxrwxrwx  0 0      0      235794 Jun 27  2014 Payload/ipa1.app/LaunchImage-700-568h@2x.png
-rwxrwxrwx  0 0      0      785321 Jun 27  2014 Payload/ipa1.app/LaunchImage-700-Landscape@2x~ipad.png
-rwxrwxrwx  0 0      0      261481 Jun 27  2014 Payload/ipa1.app/LaunchImage-700-Landscape~ipad.png
-rwxrwxrwx  0 0      0      660541 Jun 27  2014 Payload/ipa1.app/LaunchImage-700-Portrait@2x~ipad.png
-rwxrwxrwx  0 0      0      244644 Jun 27  2014 Payload/ipa1.app/LaunchImage-700-Portrait~ipad.png
-rwxrwxrwx  0 0      0      216627 Jun 27  2014 Payload/ipa1.app/LaunchImage-700@2x.png
-rwxrwxrwx  0 0      0           8 Jun 27  2014 Payload/ipa1.app/PkgInfo
-rwxrwxrwx  0 0      0         150 Jun 27  2014 Payload/ipa1.app/ResourceRules.plist
drwxrwxrwx  0 0      0           0 Jun 27  2014 Payload/ipa1.app/zh-Hans.lproj/
-rwxrwxrwx  0 0      0          73 Jun 27  2014 Payload/ipa1.app/zh-Hans.lproj/InfoPlist.strings
Saigon:~ geosn0w$

做一个tar xvf会把内容提取到“Payload”文件夹,tar xvf命令可以将里面的内容解压出来。因此,在手机上部署的IPA文件实际上是ipa1。如你所见,有一个名为embedded.mobileprovision的文件,其中包含企业证书。如果我们右键单击它并选择“获取信息”,Finder就能够向我们显示一些关于内嵌的证书的信息。正如你所看到的,它属于“Hefei Bo Fang”,我也不知道是什么。
图片描述

到达那里…

正如你所看到的,Pangu和其他许多越狱一样,依赖于开发人员证书来绕过代码签名,但是将IPA部署到设备上并不像您想象的那么容易。现在,我们快速地打开Cydia Impactor,拖放IPA,登录,然后就可以了。这是直到iOS 9.0才出现的情况,所以Pangu必须像其他越狱团队之前做的那样——用苹果的矛来攻苹果的盾。
iTunes可以很容易地与设备通信,直到iTunes 12.x,iTunes也能够处理iOS应用程序。直到剥离了这个功能,但是也暗示了一个或多个框架(或Windows用户的DLL)在创建与设备的连接并执行与应用程序相关的任务时是必须的事实。当然,我们讨论的是AppleMobileDevice(framework/DLL)。在iTunes及其驱动程序包中,这个框架在以前的越狱中被广泛使用,它仍然被Windows上所有的“备份iOS/照片/通讯录/等等”程序用于与设备进行可靠的通信。当然,API是私有的,但它们被多个研究者逆向成狗食,又被其他研究者超越。它们也在libimobiledevice项目中重新创建。

 

如你所见,有了它,Pangu最终可以与设备进行通信,并在适当的时候投放有效负载。其余部分遵循下面将要讨论的一组几乎公式化的规范补丁。

 

Pangu是我想要的例子,因为它是相当新的,所以它应用了大部分的补丁(与ReSn0w等相比),也因为它是我在iPhone 4上经常使用的一个越狱。

 

我主要给出它作为一个示例,以便你可以看到在当时绕过CodeSign与现在绕过CodeSign之间的区别。

标准补丁

我已经创建了以下图表,它应该(在理论上)显示大多数越狱的流程。当然,实现和技术会因iOS版本和iOS版本而不同,一些越狱操作可能以完全不同的顺序进行。
图片描述

 

因此,从图中可以看出,绝大部分重要的步骤都是在越狱设备上进行的,能在设备外部做的事情十分有限。入口向量因越狱补丁的不同而不同。如今,包括我的Osiris, Coolstar & Co’s Electra 还有 Jonathan’s LiberiOS在内的大多数越狱者都使用带有临时证书的IPA应用程序,并且使用Xcode或Cydia Impactor.(或签名服务)部署到设备上。然后,用户执行应用程序,并触发漏洞利用。

 

其他方法包括但不限于WebKit漏洞、邮件漏洞等。WebKit漏洞更普遍些,TotallyNotSpyware是iOS 10.x到10.3.364位Jailbreak的一个很好的例子,如果我们讨论遗留问题,JailbreakMe系列可能是最好的例子。这些基于WebKit的越狱通常通过Safari 访问特定的网址来实现 payload 部署。而该网址是经过精心设计,以触发 WebKit(Safari浏览器内核)漏洞。

 

在剩下的文章中,我将假设像Osiris, LiberiOS 或 Electra这样的基于IPA的越狱。此外,本文假设我们已经有了一个原始的内核漏洞,它提供了TFP0和KPPless方法。

 

在成功安装并运行应用程序之后,CodeSign不再是问题,至少在初始阶段是这样。我们仍然不能运行无签名或伪造签名的二进制文件,但至少我们可以自己运行(漏洞利用程序),而不会被AMFI杀死。然而,问题是我们仍然受到沙盒的限制。SandBox阻止我们访问容器之外的任何东西,因此没有“读/写”权限。我们能看到的只有我们自己的数据。这种情况必须改变。我们必须把Shai Hulud的力量赐予我们!

 

SandBox是一个内核扩展(KEXT),它确保你不会访问到超出应该访问的内容。默认情况下,在var/mobile/Containers的所有内容都是沙箱化的。苹果自己的默认应用程序也是沙箱沙箱化的。当您通过Xcode、App Store或Cydia Impactor安装应用程序时,您将自动将应用程序放置在/var/mobile/Containers/Bundle/Application/。没有其他方法安装应用程序,因此我们的越狱应用程序无论如何将默认沙箱化。
那么,应用程序是如何访问它们运行所需的服务的呢?Deezer如何连接到我的蓝牙耳机?YouTube如何解码帧?Twitter如何给我发送通知?简单,通过API。这些API允许容器化的应用程序以受控的方式与核心服务(bluetoothd, wifid, mediaserverd等)通信,这些核心服务也被沙箱化,这些核心服务通过IOKit与kexts/kernel通信。所以,你不能直接和内核对话。下面的图表可以帮助您了解。
图片描述

 

当然,作为iOS上的应用程序,您不仅不能看到文件系统和用户数据,而且在很大程度上还忽略了其他应用程序的存在。是的,通过某些API,如果另一个应用程序注册为接受处理此类输入的应用程序,则可以将文件/数据传递给另一个应用程序,但即使这样,作为应用程序,您也不知道其他应用程序的存在,而是通过以下提供的一系列API,例如,发送.PDF文件以在任何应用程序中打开。
一些应用程序还提供uri schemes供你与它们通信。假设您在iOS上的Chrome中,找到了您想打的公司的电话号码。如果你按下它,你会被问到是否真的想打电话,然后直接从iOS转到Call应用程序,电话号码已经被拨了。这又是如何实现的呢?

 

简单。“电话”应用程序已经注册了一个URI scheme,它看起来是这样的:TEL://XXXXXXXXXXX,因此如果您将Tele: //5552220001添加到HTML页面并在Safari中单击它,iOS就知道要打开谁来处理它。Facebook,WhatsApp也一样,

 

要使用应用程序中的URI scheme,只需调用正确的UIApplication方法。那就是

UIApplication.shared.open(url, options: [:], completionHandler: nil)

那么这是否意味着您绕过了SandBox,因为您可以将数据传递到另一个应用程序并打开它?不是的。你所做的一切都是通过一套控制良好的API来完成的。你不知道手机应用程序存在。iOS知道。下面是沙箱对应用程序的感觉。

 

图片描述
沙箱逃逸可以通过多种方式进行。

 

Osiris越狱使用了QiLin内置的沙箱逃逸工具,这个工具被称为“ShaiHulud”。

 

QiLin(还有LiberiOS和Osiris 越狱)凭借内核的证书逃离了沙箱。不仅如此,因为现在我们有了内核的证书,我们可以访问任何我们想要的东西,包括像execve()、fork()和posix_spawn()这样的系统调用!Jonathan Levin在本文.*OS Internals Volume III的一部分中很好地解释了Qilin如何从沙箱中逃脱,还有获得内核签名。

 

当然,QiLin保存了应用程序的证书,并在退出之前对其进行恢复,这是为了防止由于控制内核凭据的各种锁而造成恐慌。

 

Electra 的11.2.x -> iOS 11.3.1也使用了相同的内核证书方法来绕过沙箱和其他特权。

运行伪造签名二进制文件,一个越狱的从a到z

如果Jailbreak没有附带二进制包(也称为基本二进制文件),那么它就不能提供太多的价值。这个二进制包通常可以包含一长组的命令行二进制文件,可以通过编程或通过SSH连接使用。这些二进制文件包括但不限于二进制文件:重命名、移动、删除文件、像dropbear这样的SSH客户端及其依赖项、像ZSH这样的各种shell、像gzip这样的归档实用程序和标准chown,chmod和用于扰乱文件权限的chflag等。
NOTA BENE! Please do not confuse bootstrap with bin pack or base binaries. The base binaries are the same thing as the bin pack and they represent the usual unix binaries used for moving files, changing file permissions and owners, SSH, process probing, shells, etc. A bootstrap contains usually everything else: maybe a jailbreakd daemon (very common on Meridian, Unc0ver, Electra and Electra 11.3.1 but not on Osiris or LiberiOS), Cydia and other applications that may be installed by default. These are not base binaries
注意!请不要将Bootstrap与bin包或基本二进制文件混淆。基本二进制文件与bin包是一样的,它们表示通常用于移动文件、更改文件权限和所有者、SSH、进程探测、shell等的unix二进制文件。Bootstrap通常包含其他所有内容:可能是越狱守护进程(在Meridian, Unc0ver, Electra 和 Electra 11.3.1上非常常见,但在Osiris或LiberiOS上不常见)、Cydia和其他默认安装的应用程序。这些不是基本二进制文件。

 

纵观越狱的历史,相当的越狱团队已经以.tar格式构建了自己的二进制包,一旦他们访问了根文件系统,他们就部署和提取了.tar格式的二进制包,我们将在下面进行讨论。

 

在64位的iOS 11.x上,有一个由Jonathan Levin创建并在NewOSXBook上发布的非常好的通用二进制包,可以在任何iOS 11越狱中使用。该二进制包包含大量用于各种目的的二进制文件,包括ARM编译版本的jtool,用于扰乱签名并在设备上进行反汇编。
The following is the content of the binpack by Jonathan Levin used in his LiberiOS Jailbreak for iOS 11.x and my Osiris Jailbreak for iOS 11.2.x
以下是Jonathan Levin在他的LiberiOS Jailbreak for iOS 11.x和Osiris Jailbreak for iOS 11.2.x中使用的二进制包的内容

Saigon:~ geosn0w$ tar tvf /Users/geosn0w/Desktop/binpack64-256.tar.gz 
-rwxr-xr-x  0 morpheus staff   54736 Apr 25 17:55 amfidebilitate
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 ./._bin
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 bin/
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._cat
-rwxr-xr-x  0 morpheus staff   52672 Apr 25 17:45 bin/cat
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._launchctl
-rwxr-xr-x  0 morpheus staff  127488 Apr 25 17:45 bin/launchctl
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._pwd
-rwxr-xr-x  0 morpheus staff   50944 Apr 25 17:45 bin/pwd
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._sleep
-rwxr-xr-x  0 morpheus staff   50736 Apr 25 17:45 bin/sleep
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._stty
-rwxr-xr-x  0 morpheus staff   53984 Apr 25 17:45 bin/stty
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._date
-rwxr-xr-x  0 morpheus staff   53952 Apr 25 17:45 bin/date
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._bash
-rwxr-xr-x  0 morpheus staff 1038208 Apr 25 17:45 bin/bash
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._kill
-rwxr-xr-x  0 morpheus staff   51376 Apr 25 17:45 bin/kill
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._sh
-rwxr-xr-x  0 morpheus staff  669664 Apr 25 17:45 bin/sh
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._dd
-rwxr-xr-x  0 morpheus staff   70769 Apr 25 17:45 bin/dd
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._mkdir
-rwxr-xr-x  0 morpheus staff   51312 Apr 25 17:45 bin/mkdir
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._hostname
-rwxr-xr-x  0 morpheus staff   50960 Apr 25 17:45 bin/hostname
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._rmdir
-rwxr-xr-x  0 morpheus staff   50912 Apr 25 17:45 bin/rmdir
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._mv
-rwxr-xr-x  0 morpheus staff   53056 Apr 25 17:45 bin/mv
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._ln
-rwxr-xr-x  0 morpheus staff   51936 Apr 25 17:45 bin/ln
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._ls
-rwxr-xr-x  0 morpheus staff   74656 Apr 25 17:45 bin/ls
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._cp
-rwxr-xr-x  0 morpheus staff   53872 Apr 25 17:45 bin/cp
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._sync
-rwxr-xr-x  0 morpheus staff   50448 Apr 25 17:45 bin/sync
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._zsh
-rwxr-xr-x  0 morpheus staff  669664 Apr 25 17:45 bin/zsh
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._chmod
-rwxr-xr-x  0 morpheus staff   55328 Apr 25 17:45 bin/chmod
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 bin/._rm
-rwxr-xr-x  0 morpheus staff   53392 Apr 25 17:45 bin/rm
-rw-r--r--  0 morpheus staff     271 Apr 25 17:45 default.ent
-rwxr-xr-x  0 morpheus staff     178 Apr 11 22:36 ./._etc
drwxr-xr-x  0 morpheus staff       0 Apr 11 22:36 etc/
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 etc/._ssl
lrwxr-xr-x  0 morpheus staff       0 Dec 20  2017 etc/ssl -> ../usr/
-r--r--r--  0 morpheus staff     178 Apr 11 22:36 etc/._zshrc
-r--r--r--  0 morpheus staff    2770 Apr 11 22:36 etc/zshrc
-rwxr-xr-x  0 morpheus staff     178 Mar  4  2016 etc/._dropbear
drwxr-xr-x  0 morpheus staff       0 Mar  4  2016 etc/dropbear/
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 etc/._profile
-rw-r--r--  0 morpheus staff      92 Mar  4  2016 etc/profile
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 etc/._apt
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 etc/apt/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 etc/._alternatives
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 etc/alternatives/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 etc/._dpkg
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 etc/dpkg/
-rw-r--r--  0 morpheus staff     178 Jan 18  2018 etc/._motd
-rw-r--r--  0 morpheus staff    1012 Jan 18  2018 etc/motd
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 etc/dpkg/._dselect.cfg.d
drwxr-xr-x  0 morpheus staff       0 Dec 20  2017 etc/dpkg/dselect.cfg.d/
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 etc/dpkg/._dpkg.cfg.d
drwxr-xr-x  0 morpheus staff       0 Dec 20  2017 etc/dpkg/dpkg.cfg.d/
-rw-r--r--  0 morpheus staff     178 Dec 20  2017 etc/alternatives/._README
-rw-r--r--  0 morpheus staff     100 Dec 20  2017 etc/alternatives/README
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 etc/apt/._sources.list.d
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 etc/apt/sources.list.d/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 etc/apt/._trusted.gpg.d
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 etc/apt/trusted.gpg.d/
-rw-r--r--  0 morpheus staff     178 Feb  3  2017 etc/apt/trusted.gpg.d/._zodttd.gpg
-rw-r--r--  0 morpheus staff    1158 Feb  3  2017 etc/apt/trusted.gpg.d/zodttd.gpg
-rw-r--r--  0 morpheus staff     178 Feb  3  2017 etc/apt/trusted.gpg.d/._bigboss.gpg
-rw-r--r--  0 morpheus staff    1164 Feb  3  2017 etc/apt/trusted.gpg.d/bigboss.gpg
-rw-r--r--  0 morpheus staff     178 Feb  3  2017 etc/apt/trusted.gpg.d/._modmyi.gpg
-rw-r--r--  0 morpheus staff    1180 Feb  3  2017 etc/apt/trusted.gpg.d/modmyi.gpg
-rw-r--r--  0 morpheus staff     178 Feb  3  2017 etc/apt/trusted.gpg.d/._saurik.gpg
-rw-r--r--  0 morpheus staff    1172 Feb  3  2017 etc/apt/trusted.gpg.d/saurik.gpg
-rw-r--r--  0 morpheus staff     178 Feb  3  2017 etc/apt/sources.list.d/._cydia.list
-rw-r--r--  0 morpheus staff       0 Feb  3  2017 etc/apt/sources.list.d/cydia.list
-rw-r--r--  0 morpheus staff     178 Feb  3  2017 etc/apt/sources.list.d/._saurik.list
-rw-r--r--  0 morpheus staff     227 Feb  3  2017 etc/apt/sources.list.d/saurik.list
-rwxr-xr-x  0 morpheus staff     178 Jan  3  2018 ./._makeMeAtHome.sh
-rwxr-xr-x  0 morpheus staff     729 Jan  3  2018 makeMeAtHome.sh
-rwxr-xr-x  0 morpheus staff     952 Mar 19  2018 removeMe.sh
-rwxr-xr-x  0 morpheus staff     178 Apr 25 18:24 ./._sbin
drwxr-xr-x  0 morpheus staff       0 Apr 25 18:24 sbin/
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 sbin/._md5
-rwxr-xr-x  0 morpheus staff   54016 Apr 25 17:45 sbin/md5
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 sbin/._ping
-rwxr-xr-x  0 morpheus staff   72528 Apr 25 17:45 sbin/ping
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 sbin/._shutdown
-rwxr-xr-x  0 morpheus staff   54704 Apr 25 17:45 sbin/shutdown
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 sbin/._ifconfig
-rwxr-xr-x  0 morpheus staff  111696 Apr 25 17:45 sbin/ifconfig
-rwxr-xr-x  0 morpheus staff   53616 Apr 25 18:24 sbin/umount
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:53 sbin/._kextunload
-rwxr-xr-x  0 morpheus staff   76256 Apr 25 17:53 sbin/kextunload
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 sbin/._mknod
-rwxr-xr-x  0 morpheus staff   51504 Apr 25 17:45 sbin/mknod
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 sbin/._dmesg
-rwxr-xr-x  0 morpheus staff   50912 Apr 25 17:45 sbin/dmesg
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 ./._usr
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/._bin
drwxr-xr-x  0 morpheus staff       0 Apr 25 17:46 usr/bin/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/._sbin
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/sbin/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/._local
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/local/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/._share
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/share/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/share/._terminfo
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/share/terminfo/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/share/terminfo/._61
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/share/terminfo/61/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/share/terminfo/._73
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/share/terminfo/73/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/share/terminfo/._6c
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/share/terminfo/6c/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/share/terminfo/._76
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/share/terminfo/76/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/share/terminfo/._78
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/share/terminfo/78/
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/78/._xterm-256color
-rw-r--r--  0 morpheus staff    3322 Sep  9  2014 usr/share/terminfo/78/xterm-256color
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-putty
-rw-r--r--  0 morpheus staff    1199 Mar  4  2016 usr/share/terminfo/76/vt100-putty
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-nav-w
-rw-r--r--  0 morpheus staff    1093 Mar  4  2016 usr/share/terminfo/76/vt100-nav-w
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-s
-rw-r--r--  0 morpheus staff    1272 Mar  4  2016 usr/share/terminfo/76/vt100-s
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100+
-rw-r--r--  0 morpheus staff    1657 Mar  4  2016 usr/share/terminfo/76/vt100+
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100nam
-rw-r--r--  0 morpheus staff    1190 Mar  4  2016 usr/share/terminfo/76/vt100nam
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-vb
-rw-r--r--  0 morpheus staff    1207 Mar  4  2016 usr/share/terminfo/76/vt100-vb
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100+enq
-rw-r--r--  0 morpheus staff     682 Mar  4  2016 usr/share/terminfo/76/vt100+enq
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-s-top
-rw-r--r--  0 morpheus staff    1272 Mar  4  2016 usr/share/terminfo/76/vt100-s-top
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-nam-w
-rw-r--r--  0 morpheus staff    1221 Mar  4  2016 usr/share/terminfo/76/vt100-nam-w
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100+fnkeys
-rw-r--r--  0 morpheus staff     450 Mar  4  2016 usr/share/terminfo/76/vt100+fnkeys
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-w
-rw-r--r--  0 morpheus staff    1203 Mar  4  2016 usr/share/terminfo/76/vt100-w
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100
-rw-r--r--  0 morpheus staff    1194 Mar  4  2016 usr/share/terminfo/76/vt100
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-w-nav
-rw-r--r--  0 morpheus staff    1093 Mar  4  2016 usr/share/terminfo/76/vt100-w-nav
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-bot-s
-rw-r--r--  0 morpheus staff    1256 Mar  4  2016 usr/share/terminfo/76/vt100-bot-s
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-w-nam
-rw-r--r--  0 morpheus staff    1221 Mar  4  2016 usr/share/terminfo/76/vt100-w-nam
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100+pfkeys
-rw-r--r--  0 morpheus staff     422 Mar  4  2016 usr/share/terminfo/76/vt100+pfkeys
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-top-s
-rw-r--r--  0 morpheus staff    1272 Mar  4  2016 usr/share/terminfo/76/vt100-top-s
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-nav
-rw-r--r--  0 morpheus staff    1059 Mar  4  2016 usr/share/terminfo/76/vt100-nav
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-nam
-rw-r--r--  0 morpheus staff    1190 Mar  4  2016 usr/share/terminfo/76/vt100-nam
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-bm-o
-rw-r--r--  0 morpheus staff    1207 Mar  4  2016 usr/share/terminfo/76/vt100-bm-o
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100+keypad
-rw-r--r--  0 morpheus staff     368 Mar  4  2016 usr/share/terminfo/76/vt100+keypad
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-am
-rw-r--r--  0 morpheus staff    1194 Mar  4  2016 usr/share/terminfo/76/vt100-am
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-s-bot
-rw-r--r--  0 morpheus staff    1256 Mar  4  2016 usr/share/terminfo/76/vt100-s-bot
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-w-am
-rw-r--r--  0 morpheus staff    1203 Mar  4  2016 usr/share/terminfo/76/vt100-w-am
-rw-r--r--  0 morpheus staff     178 Mar  4  2016 usr/share/terminfo/76/._vt100-bm
-rw-r--r--  0 morpheus staff    1201 Mar  4  2016 usr/share/terminfo/76/vt100-bm
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux-lat
-rw-r--r--  0 morpheus staff    1782 Sep  9  2014 usr/share/terminfo/6c/linux-lat
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux-koi8r
-rw-r--r--  0 morpheus staff    1774 Sep  9  2014 usr/share/terminfo/6c/linux-koi8r
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux-vt
-rw-r--r--  0 morpheus staff    1652 Sep  9  2014 usr/share/terminfo/6c/linux-vt
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux-basic
-rw-r--r--  0 morpheus staff    1626 Sep  9  2014 usr/share/terminfo/6c/linux-basic
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux
-rw-r--r--  0 morpheus staff    1740 Sep  9  2014 usr/share/terminfo/6c/linux
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux-c-nc
-rw-r--r--  0 morpheus staff    1726 Sep  9  2014 usr/share/terminfo/6c/linux-c-nc
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux2.6.26
-rw-r--r--  0 morpheus staff    1752 Sep  9  2014 usr/share/terminfo/6c/linux2.6.26
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux-c
-rw-r--r--  0 morpheus staff    2080 Sep  9  2014 usr/share/terminfo/6c/linux-c
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux-m
-rw-r--r--  0 morpheus staff    1730 Sep  9  2014 usr/share/terminfo/6c/linux-m
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux-nic
-rw-r--r--  0 morpheus staff    1772 Sep  9  2014 usr/share/terminfo/6c/linux-nic
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/6c/._linux-koi8
-rw-r--r--  0 morpheus staff    1768 Sep  9  2014 usr/share/terminfo/6c/linux-koi8
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-16color
-rw-r--r--  0 morpheus staff    1990 Sep  9  2014 usr/share/terminfo/73/screen-16color
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen2
-rw-r--r--  0 morpheus staff     585 Sep  9  2014 usr/share/terminfo/73/screen2
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen3
-rw-r--r--  0 morpheus staff     630 Sep  9  2014 usr/share/terminfo/73/screen3
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-16color-bce-s
-rw-r--r--  0 morpheus staff    2030 Sep  9  2014 usr/share/terminfo/73/screen-16color-bce-s
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-256color-bce
-rw-r--r--  0 morpheus staff    1840 Sep  9  2014 usr/share/terminfo/73/screen-256color-bce
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen.rxvt
-rw-r--r--  0 morpheus staff    2082 Sep  9  2014 usr/share/terminfo/73/screen.rxvt
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen.xterm-r6
-rw-r--r--  0 morpheus staff    1503 Sep  9  2014 usr/share/terminfo/73/screen.xterm-r6
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-w
-rw-r--r--  0 morpheus staff    1566 Sep  9  2014 usr/share/terminfo/73/screen-w
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen.xterm-xfree86
-rw-r--r--  0 morpheus staff    3263 Sep  9  2014 usr/share/terminfo/73/screen.xterm-xfree86
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-16color-s
-rw-r--r--  0 morpheus staff    2020 Sep  9  2014 usr/share/terminfo/73/screen-16color-s
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen.linux
-rw-r--r--  0 morpheus staff    1710 Sep  9  2014 usr/share/terminfo/73/screen.linux
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-256color-bce-s
-rw-r--r--  0 morpheus staff    1866 Sep  9  2014 usr/share/terminfo/73/screen-256color-bce-s
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen
-rw-r--r--  0 morpheus staff    1550 Sep  9  2014 usr/share/terminfo/73/screen
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-bce
-rw-r--r--  0 morpheus staff    1562 Sep  9  2014 usr/share/terminfo/73/screen-bce
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-256color-s
-rw-r--r--  0 morpheus staff    1856 Sep  9  2014 usr/share/terminfo/73/screen-256color-s
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen.mlterm
-rw-r--r--  0 morpheus staff    2590 Sep  9  2014 usr/share/terminfo/73/screen.mlterm
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-s
-rw-r--r--  0 morpheus staff    1584 Sep  9  2014 usr/share/terminfo/73/screen-s
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen.teraterm
-rw-r--r--  0 morpheus staff    1548 Sep  9  2014 usr/share/terminfo/73/screen.teraterm
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-16color-bce
-rw-r--r--  0 morpheus staff    2002 Sep  9  2014 usr/share/terminfo/73/screen-16color-bce
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen.xterm-new
-rw-r--r--  0 morpheus staff    3263 Sep  9  2014 usr/share/terminfo/73/screen.xterm-new
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen-256color
-rw-r--r--  0 morpheus staff    1828 Sep  9  2014 usr/share/terminfo/73/screen-256color
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/73/._screen+fkeys
-rw-r--r--  0 morpheus staff     474 Sep  9  2014 usr/share/terminfo/73/screen+fkeys
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x50-mono
-rw-r--r--  0 morpheus staff    1264 Sep  9  2014 usr/share/terminfo/61/ansi80x50-mono
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+idl1
-rw-r--r--  0 morpheus staff     138 Sep  9  2014 usr/share/terminfo/61/ansi+idl1
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansil
-rw-r--r--  0 morpheus staff    1502 Sep  9  2014 usr/share/terminfo/61/ansil
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+idc
-rw-r--r--  0 morpheus staff     263 Sep  9  2014 usr/share/terminfo/61/ansi+idc
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansiw
-rw-r--r--  0 morpheus staff    1459 Sep  9  2014 usr/share/terminfo/61/ansiw
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x30
-rw-r--r--  0 morpheus staff    1496 Sep  9  2014 usr/share/terminfo/61/ansi80x30
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-mono
-rw-r--r--  0 morpheus staff    1370 Sep  9  2014 usr/share/terminfo/61/ansi-mono
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+pp
-rw-r--r--  0 morpheus staff     295 Sep  9  2014 usr/share/terminfo/61/ansi+pp
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+idl
-rw-r--r--  0 morpheus staff     270 Sep  9  2014 usr/share/terminfo/61/ansi+idl
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansil-mono
-rw-r--r--  0 morpheus staff    1264 Sep  9  2014 usr/share/terminfo/61/ansil-mono
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x30-mono
-rw-r--r--  0 morpheus staff    1252 Sep  9  2014 usr/share/terminfo/61/ansi80x30-mono
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x25-raw
-rw-r--r--  0 morpheus staff    1459 Sep  9  2014 usr/share/terminfo/61/ansi80x25-raw
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+csr
-rw-r--r--  0 morpheus staff     349 Sep  9  2014 usr/share/terminfo/61/ansi+csr
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-generic
-rw-r--r--  0 morpheus staff     733 Sep  9  2014 usr/share/terminfo/61/ansi-generic
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+sgr
-rw-r--r--  0 morpheus staff     368 Sep  9  2014 usr/share/terminfo/61/ansi+sgr
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+cup
-rw-r--r--  0 morpheus staff      69 Sep  9  2014 usr/share/terminfo/61/ansi+cup
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-emx
-rw-r--r--  0 morpheus staff    1582 Sep  9  2014 usr/share/terminfo/61/ansi-emx
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+sgrbold
-rw-r--r--  0 morpheus staff     463 Sep  9  2014 usr/share/terminfo/61/ansi+sgrbold
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+sgrul
-rw-r--r--  0 morpheus staff     143 Sep  9  2014 usr/share/terminfo/61/ansi+sgrul
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x60-mono
-rw-r--r--  0 morpheus staff    1252 Sep  9  2014 usr/share/terminfo/61/ansi80x60-mono
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+sgrso
-rw-r--r--  0 morpheus staff     139 Sep  9  2014 usr/share/terminfo/61/ansi+sgrso
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi
-rw-r--r--  0 morpheus staff    1481 Sep  9  2014 usr/share/terminfo/61/ansi
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-color-2-emx
-rw-r--r--  0 morpheus staff    1580 Sep  9  2014 usr/share/terminfo/61/ansi-color-2-emx
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansis-mono
-rw-r--r--  0 morpheus staff    1478 Sep  9  2014 usr/share/terminfo/61/ansis-mono
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-color-3-emx
-rw-r--r--  0 morpheus staff    1577 Sep  9  2014 usr/share/terminfo/61/ansi-color-3-emx
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansisysk
-rw-r--r--  0 morpheus staff    1518 Sep  9  2014 usr/share/terminfo/61/ansisysk
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi43m
-rw-r--r--  0 morpheus staff     735 Sep  9  2014 usr/share/terminfo/61/ansi43m
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-mtabs
-rw-r--r--  0 morpheus staff     444 Sep  9  2014 usr/share/terminfo/61/ansi-mtabs
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+sgrdim
-rw-r--r--  0 morpheus staff     463 Sep  9  2014 usr/share/terminfo/61/ansi+sgrdim
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x25
-rw-r--r--  0 morpheus staff    1502 Sep  9  2014 usr/share/terminfo/61/ansi80x25
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+erase
-rw-r--r--  0 morpheus staff      55 Sep  9  2014 usr/share/terminfo/61/ansi+erase
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+rep
-rw-r--r--  0 morpheus staff     286 Sep  9  2014 usr/share/terminfo/61/ansi+rep
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansis
-rw-r--r--  0 morpheus staff    1502 Sep  9  2014 usr/share/terminfo/61/ansis
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x50
-rw-r--r--  0 morpheus staff    1502 Sep  9  2014 usr/share/terminfo/61/ansi80x50
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+tabs
-rw-r--r--  0 morpheus staff     306 Sep  9  2014 usr/share/terminfo/61/ansi+tabs
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+local1
-rw-r--r--  0 morpheus staff      80 Sep  9  2014 usr/share/terminfo/61/ansi+local1
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x60
-rw-r--r--  0 morpheus staff    1496 Sep  9  2014 usr/share/terminfo/61/ansi80x60
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+rca
-rw-r--r--  0 morpheus staff     308 Sep  9  2014 usr/share/terminfo/61/ansi+rca
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-mini
-rw-r--r--  0 morpheus staff     418 Sep  9  2014 usr/share/terminfo/61/ansi-mini
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+enq
-rw-r--r--  0 morpheus staff     685 Sep  9  2014 usr/share/terminfo/61/ansi+enq
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-nt
-rw-r--r--  0 morpheus staff     476 Sep  9  2014 usr/share/terminfo/61/ansi-nt
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi77
-rw-r--r--  0 morpheus staff     543 Sep  9  2014 usr/share/terminfo/61/ansi77
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-mr
-rw-r--r--  0 morpheus staff     377 Sep  9  2014 usr/share/terminfo/61/ansi-mr
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x43-mono
-rw-r--r--  0 morpheus staff    1252 Sep  9  2014 usr/share/terminfo/61/ansi80x43-mono
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi.sys
-rw-r--r--  0 morpheus staff    1257 Sep  9  2014 usr/share/terminfo/61/ansi.sys
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi.sys-old
-rw-r--r--  0 morpheus staff    1255 Sep  9  2014 usr/share/terminfo/61/ansi.sys-old
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi.sysk
-rw-r--r--  0 morpheus staff    1518 Sep  9  2014 usr/share/terminfo/61/ansi.sysk
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x25-mono
-rw-r--r--  0 morpheus staff    1478 Sep  9  2014 usr/share/terminfo/61/ansi80x25-mono
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+inittabs
-rw-r--r--  0 morpheus staff     314 Sep  9  2014 usr/share/terminfo/61/ansi+inittabs
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+local
-rw-r--r--  0 morpheus staff     306 Sep  9  2014 usr/share/terminfo/61/ansi+local
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi-m
-rw-r--r--  0 morpheus staff    1370 Sep  9  2014 usr/share/terminfo/61/ansi-m
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi80x43
-rw-r--r--  0 morpheus staff    1496 Sep  9  2014 usr/share/terminfo/61/ansi80x43
-rw-r--r--  0 morpheus staff     178 Sep  9  2014 usr/share/terminfo/61/._ansi+arrows
-rw-r--r--  0 morpheus staff     222 Sep  9  2014 usr/share/terminfo/61/ansi+arrows
-rwxr-xr-x  0 morpheus staff     178 Apr 25 19:23 usr/local/._bin
drwxr-xr-x  0 morpheus staff       0 Apr 25 19:23 usr/local/bin/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/local/._lib
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/local/lib/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/local/lib/._zsh
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/local/lib/zsh/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/local/lib/zsh/._5.0.8
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/local/lib/zsh/5.0.8/
-rwxr-xr-x  0 morpheus staff     178 Mar 18  2018 usr/local/lib/zsh/5.0.8/._zsh
drwxr-xr-x  0 morpheus staff       0 Mar 18  2018 usr/local/lib/zsh/5.0.8/zsh/
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._termcap.so
-rwxr-xr-x  0 morpheus staff   51968 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/termcap.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._zleparameter.so
-rwxr-xr-x  0 morpheus staff   51424 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/zleparameter.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._example.so
-rwxr-xr-x  0 morpheus staff   51728 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/example.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._tcp.so
-rwxr-xr-x  0 morpheus staff   52832 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/tcp.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._newuser.so
-rwxr-xr-x  0 morpheus staff   50992 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/newuser.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._deltochar.so
-rwxr-xr-x  0 morpheus staff   51296 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/deltochar.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._complete.so
-rwxr-xr-x  0 morpheus staff  157488 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/complete.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._mapfile.so
-rwxr-xr-x  0 morpheus staff   51936 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/mapfile.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._stat.so
-rwxr-xr-x  0 morpheus staff   52224 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/stat.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._compctl.so
-rwxr-xr-x  0 morpheus staff   94992 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/compctl.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._zselect.so
-rwxr-xr-x  0 morpheus staff   51936 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/zselect.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._parameter.so
-rwxr-xr-x  0 morpheus staff   72032 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/parameter.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._datetime.so
-rwxr-xr-x  0 morpheus staff   52320 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/datetime.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._socket.so
-rwxr-xr-x  0 morpheus staff   51696 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/socket.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._terminfo.so
-rwxr-xr-x  0 morpheus staff   51968 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/terminfo.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._clone.so
-rwxr-xr-x  0 morpheus staff   51792 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/clone.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._regex.so
-rwxr-xr-x  0 morpheus staff   51776 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/regex.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._attr.so
-rwxr-xr-x  0 morpheus staff   51488 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/attr.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._curses.so
-rwxr-xr-x  0 morpheus staff   56272 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/curses.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._files.so
-rwxr-xr-x  0 morpheus staff   53360 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/files.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._system.so
-rwxr-xr-x  0 morpheus staff   53056 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/system.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._zpty.so
-rwxr-xr-x  0 morpheus staff   54592 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/zpty.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._zle.so
-rwxr-xr-x  0 morpheus staff  284896 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/zle.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._mathfunc.so
-rwxr-xr-x  0 morpheus staff   53200 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/mathfunc.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._zutil.so
-rwxr-xr-x  0 morpheus staff   54880 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/zutil.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._complist.so
-rwxr-xr-x  0 morpheus staff   92064 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/complist.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._zftp.so
-rwxr-xr-x  0 morpheus staff   73568 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/zftp.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._cap.so
-rwxr-xr-x  0 morpheus staff   50736 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/cap.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._computil.so
-rwxr-xr-x  0 morpheus staff   89472 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/computil.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._zprof.so
-rwxr-xr-x  0 morpheus staff   51312 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/zprof.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/._langinfo.so
-rwxr-xr-x  0 morpheus staff   50992 Dec 20  2017 usr/local/lib/zsh/5.0.8/zsh/langinfo.so
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/bin/._wget
-rwxr-xr-x  0 morpheus staff  737808 Dec 20  2017 usr/local/bin/wget
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/bin/._dbclient
-rwxr-xr-x  0 morpheus staff  234688 Dec 20  2017 usr/local/bin/dbclient
-rw-r--r--  0 morpheus staff  166576 Apr 25 19:23 usr/local/bin/qilin.o
-rw-r--r--  0 morpheus staff    1060 Apr 25 19:23 usr/local/bin/shaihulud.c
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/bin/._filemon
-rwxr-xr-x  0 morpheus staff   52304 Dec 20  2017 usr/local/bin/filemon
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/bin/._dropbear
-rwxr-xr-x  0 morpheus staff  235696 Dec 20  2017 usr/local/bin/dropbear
-rwxr-xr-x  0 morpheus staff  194480 Apr 25 19:23 usr/local/bin/shaihulud
-rwxr-xr-x  0 morpheus staff  590944 Apr 25 17:48 usr/local/bin/procexp
-rwxr-xr-x  0 morpheus staff  552544 Apr 25 17:50 usr/local/bin/jtool
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/bin/._dropbearkey
-rwxr-xr-x  0 morpheus staff  169408 Dec 20  2017 usr/local/bin/dropbearkey
-rwxr-xr-x  0 morpheus staff   70592 Feb 28  2018 usr/local/bin/jlutil
-rwxr-xr-x  0 morpheus staff  504928 Apr 25 18:03 usr/local/bin/joker
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/bin/._dropbearconvert
-rwxr-xr-x  0 morpheus staff  170144 Dec 20  2017 usr/local/bin/dropbearconvert
-rwxr-xr-x  0 morpheus staff     178 Dec 20  2017 usr/local/bin/._dropbear.orig
-rwxr-xr-x  0 morpheus staff  252400 Dec 20  2017 usr/local/bin/dropbear.orig
-rw-r--r--  0 morpheus staff     910 Apr 25 17:48 usr/local/bin/procexp.ent
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 usr/sbin/._joreg
-rwxr-xr-x  0 morpheus staff   75296 Apr 25 17:45 usr/sbin/joreg
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 usr/sbin/._ioreg
-rwxr-xr-x  0 morpheus staff   75296 Apr 25 17:45 usr/sbin/ioreg
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 usr/sbin/._sysctl
-rwxr-xr-x  0 morpheus staff   53088 Apr 25 17:45 usr/sbin/sysctl
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 usr/sbin/._taskpolicy
-rwxr-xr-x  0 morpheus staff   51824 Apr 25 17:45 usr/sbin/taskpolicy
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 usr/sbin/._netstat
-rwxr-xr-x  0 morpheus staff  227472 Apr 25 17:45 usr/sbin/netstat
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 usr/sbin/._ltop
-rwxr-xr-x  0 morpheus staff   52384 Apr 25 17:45 usr/sbin/ltop
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:45 usr/sbin/._chown
-rwxr-xr-x  0 morpheus staff   52192 Apr 25 17:45 usr/sbin/chown
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:53 usr/sbin/._kextstat
-rwxr-xr-x  0 morpheus staff   77024 Apr 25 17:53 usr/sbin/kextstat
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._tee
-rwxr-xr-x  0 morpheus staff   51120 Apr 25 17:46 usr/bin/tee
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._split
-rwxr-xr-x  0 morpheus staff   68880 Apr 25 17:46 usr/bin/split
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._vim
-rwxr-xr-x  0 morpheus staff 2190272 Apr 25 17:46 usr/bin/vim
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._hexdump
-rwxr-xr-x  0 morpheus staff   71488 Apr 25 17:46 usr/bin/hexdump
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:52 usr/bin/._lsmp
-rwxr-xr-x  0 morpheus staff   71380 Apr 25 17:52 usr/bin/lsmp
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._vm_stat
-rwxr-xr-x  0 morpheus staff   52064 Apr 25 17:46 usr/bin/vm_stat
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._syslog
-rwxr-xr-x  0 morpheus staff  187472 Apr 25 17:46 usr/bin/syslog
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._du
-rwxr-xr-x  0 morpheus staff   53088 Apr 25 17:46 usr/bin/du
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._fs_usage
-rwxr-xr-x  0 morpheus staff  125344 Apr 25 17:46 usr/bin/fs_usage
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._renice
-rwxr-xr-x  0 morpheus staff   51008 Apr 25 17:46 usr/bin/renice
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._xxd
-rwxr-xr-x  0 morpheus staff   52016 Apr 25 17:46 usr/bin/xxd
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._sc_usage
-rwxr-xr-x  0 morpheus staff   73968 Apr 25 17:46 usr/bin/sc_usage
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._less
-rwxr-xr-x  0 morpheus staff  233968 Apr 25 17:46 usr/bin/less
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._sed
-rwxr-xr-x  0 morpheus staff   73184 Apr 25 17:46 usr/bin/sed
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._nano
-rwxr-xr-x  0 morpheus staff  262992 Apr 25 17:46 usr/bin/nano
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._tset
-rwxr-xr-x  0 morpheus staff   54400 Apr 25 17:46 usr/bin/tset
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._seq
-rwxr-xr-x  0 morpheus staff   51904 Apr 25 17:46 usr/bin/seq
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._uname
-rwxr-xr-x  0 morpheus staff   51104 Apr 25 17:46 usr/bin/uname
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._uicache
-rwxr-xr-x  0 morpheus staff   53520 Apr 25 17:46 usr/bin/uicache
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._reset
-rwxr-xr-x  0 morpheus staff   54400 Apr 25 17:46 usr/bin/reset
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._wc
-rwxr-xr-x  0 morpheus staff   51840 Apr 25 17:46 usr/bin/wc
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._gzip
-rwxr-xr-x  0 morpheus staff   90000 Apr 25 17:46 usr/bin/gzip
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._printf
-rwxr-xr-x  0 morpheus staff   51968 Apr 25 17:46 usr/bin/printf
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._tail
-rwxr-xr-x  0 morpheus staff   53872 Apr 25 17:46 usr/bin/tail
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._grep
-rwxr-xr-x  0 morpheus staff  190768 Apr 25 17:46 usr/bin/grep
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._script
-rwxr-xr-x  0 morpheus staff   53232 Apr 25 17:46 usr/bin/script
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._more
-rwxr-xr-x  0 morpheus staff  233968 Apr 25 17:46 usr/bin/more
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._time
-rwxr-xr-x  0 morpheus staff   51136 Apr 25 17:46 usr/bin/time
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._plconvert
-rwxr-xr-x  0 morpheus staff   52080 Apr 25 17:46 usr/bin/plconvert
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._head
-rwxr-xr-x  0 morpheus staff   51776 Apr 25 17:46 usr/bin/head
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._clear
-rwxr-xr-x  0 morpheus staff   50640 Apr 25 17:46 usr/bin/clear
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._killall
-rwxr-xr-x  0 morpheus staff   52496 Apr 25 17:46 usr/bin/killall
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._stat
-rwxr-xr-x  0 morpheus staff   52080 Apr 25 17:46 usr/bin/stat
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._sqlite3
-rwxr-xr-x  0 morpheus staff 1333456 Apr 25 17:46 usr/bin/sqlite3
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._screen
-rwxr-xr-x  0 morpheus staff  428416 Apr 25 17:46 usr/bin/screen
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._arch
-rwxr-xr-x  0 morpheus staff   54976 Apr 25 17:46 usr/bin/arch
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._cut
-rwxr-xr-x  0 morpheus staff   53040 Apr 25 17:46 usr/bin/cut
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._xargs
-rwxr-xr-x  0 morpheus staff   53568 Apr 25 17:46 usr/bin/xargs
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._what
-rwxr-xr-x  0 morpheus staff   50816 Apr 25 17:46 usr/bin/what
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._chflags
-rwxr-xr-x  0 morpheus staff   51296 Apr 25 17:46 usr/bin/chflags
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._id
-rwxr-xr-x  0 morpheus staff   51936 Apr 25 17:46 usr/bin/id
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._find
-rwxr-xr-x  0 morpheus staff   94368 Apr 25 17:46 usr/bin/find
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._scp
-rwxr-xr-x  0 morpheus staff   55552 Apr 25 17:46 usr/bin/scp
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._true
-rwxr-xr-x  0 morpheus staff   50416 Apr 25 17:46 usr/bin/true
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._hostinfo
-rwxr-xr-x  0 morpheus staff   51216 Apr 25 17:46 usr/bin/hostinfo
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._tar
-rwxr-xr-x  0 morpheus staff  459392 Apr 25 17:46 usr/bin/tar
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._false
-rwxr-xr-x  0 morpheus staff   50416 Apr 25 17:46 usr/bin/false
-rwxr-xr-x  0 morpheus staff   55648 Apr 25 17:46 usr/bin/login
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._which
-rwxr-xr-x  0 morpheus staff   51504 Apr 25 17:46 usr/bin/which
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._passwd
-rwxr-xr-x  0 morpheus staff   52832 Apr 25 17:46 usr/bin/passwd
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._nohup
-rwxr-xr-x  0 morpheus staff   51312 Apr 25 17:46 usr/bin/nohup
-rwxr-xr-x  0 morpheus staff   53184 Apr 25 17:46 usr/bin/w
-rwxr-xr-x  0 morpheus staff     178 Apr 25 17:46 usr/bin/._gunzip
-rwxr-xr-x  0 morpheus staff   90000 Apr 25 17:46 usr/bin/gunzip
Saigon:~ geosn0w$

重新挂载文件系统

因此,我们利用了内核漏洞并获得了内核内存R/W,我们利用了一个bug,或者我们给自己提供了内核证书,然后我们也退出了SandBox,现在我们想要删除投放payload(它可以包含Cydia、二进制文件、配置文件、用于检查是否安装了越狱的虚拟文件等等)。为了做到这一点,我们需要对文件系统具有写权限。默认情况下,iOS根文件系统挂载为只读,所以我们需要重新安装它,因此补丁的名称为:Root FS Remount。

 

这就是2018年7月,当Electra for iOS 11.3.1处于开发阶段时缺少的组件,大多数eta folks都陷入了困境。

那么,我们是怎么做的呢?

在QiLin(还有在LiberiOS和Osiris 越狱)上,重新挂载到iOS 11.2.6是这样工作的:正如我所说的,默认情况下,ROOT FS是作为只读安装的。不仅如此,SandBox还有一个hook,阻止您将其重新挂载为Read/Write。挂钩是通过mount_begin_update()和mount_common()中的MACF调用实现的。所有的钩子都检查在安装标志中是否存在MNT_ROOTFS标志。如果存在,则操作失败。那么QiLin做了什么呢?简单。它关闭MNT_ROOTFS标志。

 

以下罗列的是Qilin工具包中的remountRootFS,Jonathan Levin在newosxbook.com和*OS Internals的第三卷中公开提供。

int remountRootFS (void)
{
   ...
   uint64_t rootVnodeAddr = findKernelSymbol("_rootvnode");
   uint64_t *actualVnodeAddr;
   struct vnode *rootvnode = 0;
   char *v_mount;
   status("Attempting to remount rootFS...\n");
   readKernelMemory(rootVnodeAddr, sizeof(void *), &actualVnodeAddr);
   readKernelMemory(*actualVnodeAddr, sizeof(struct vnode), &rootvnode);
   readKernelMemory(rootvnode->v_mount, 0x100, &v_mount);
   // Disable MNT_ROOTFS momentarily, remounts , and then flips the flag back
   uint32_t mountFlags = (*(uint32_t * )(v_mount + 0x70)) & ~(MNT_ROOTFS | MNT_RDONLY);
   writeKernelMemory(((char *)rootvnode->v_mount) + 0x70 ,sizeof(mountFlags), &mountFlags);
   char *opts = strdup("/dev/disk0s1s1");
   // Not enough to just change the MNT_RDONLY flag - we have to call
   // mount(2) again, to refresh the kernel code paths for mounting..
   int rc = mount("apfs", "/", MNT_UPDATE, (void *)&opts);
   printf("RC: %d (flags: 0x%x) %s \n", rc, mountFlags, strerror(errno));
   mountFlags |= MNT_ROOTFS;
   writeKernelMemory(((char *)rootvnode->v_mount) + 0x70 ,sizeof(mountFlags), &mountFlags);
   // Quick test:
   int fd = open ("/test.txt", O_TRUNC| O_CREAT);
   if (fd < 0) { error ("Failed to remount /"); }
   else {
     status("Mounted / as read write :-)\n");
     unlink("/test.txt"); // clean up
   }
 return 0;

Jonathan Levin的代码非常简单。翻转MNT_ROOTFS标志,调用mount(2)刷新用于挂载的内核代码路径,恢复标志并测试。完工。已经是R/W了。

 

在较早的越狱LightweightVolumeManager::_mapForIO补丁中完成了:
Electra的重载
iOS 11.3通过引入APFS快照推进了一步。当苹果开始使用快照时,APFS在iOS中已经使用了相当长的一段时间,但是当他们这么做时,它打破了我们对iOS 11.2.x甚至更老版本的尝试和真正的重装。要解决这个问题,需要找到一个新的bug。问题在于,iOS将恢复到只读安装的快照,因此每次重新启动时,我们所安装的tweaks、二进制文件等内容都会消失。

 

在这一点上,有两件事情可以做:改变整个越狱,走向“ROOTless”,或者找到绕过快照的方法。正是由于@pwn20wnd和@umanghere,才创建了正确的重装。Umang发现了pwn20wnd在Electra中开发的一个“bug”。
好吧,说它是一个bug,有点夸张了。它不是一个bug,而是fs_snapshot系统调用的一个功能。不管怎样,它是有效的。
Pwn20wnd对于这个快照问题的绕过也是非常简单的。下面是Electra iOS 11.3.1源代码中的函数:

int remountRootAsRW(uint64_t slide, uint64_t kern_proc, uint64_t our_proc, int snapshot_success){
    if (/* iOS 11.2.6 or lower don't need snapshot */ kCFCoreFoundationVersionNumber <= 1451.51 || /* we're already remounted properly */ snapshot_success == 0){
        return remountRootAsRW_old(slide, kern_proc, our_proc);
    }

    if (!getOffsets(slide)){
        return -1;
    }

    uint64_t kernucred = rk64(kern_proc+offsetof_p_ucred);
    uint64_t ourucred = rk64(our_proc+offsetof_p_ucred);

    uint64_t vfs_context = get_vfs_context();

    char *dev_path = "/dev/disk0s1s1";
    uint64_t devVnode = getVnodeAtPath(vfs_context, dev_path);
    uint64_t specInfo = rk64(devVnode + offsetof_v_specinfo);

    wk32(specInfo + offsetof_si_flags, 0); //clear dev vnode's v_specflags

    if (file_exists(ROOTFSMNT))
        rmdir(ROOTFSMNT);

    mkdir(ROOTFSMNT, 0755);
    chown(ROOTFSMNT, 0, 0);

    printf("Temporarily setting kern ucred\n");

    wk64(our_proc+offsetof_p_ucred, kernucred);

    int rv = -1;

    if (mountDevAsRWAtPath(dev_path, ROOTFSMNT) != ERR_SUCCESS) {
        printf("Error mounting root at %s\n", ROOTFSMNT);

        goto out;
    }

    /* APFS snapshot mitigation bypass bug by CoolStar, exploitation by Pwn20wnd */
    /* Disables the new APFS snapshot mitigations introduced in iOS 11.3 */

    printf("Disabling the APFS snapshot mitigations\n");

    const char *systemSnapshot = find_system_snapshot(ROOTFSMNT);
    const char *newSystemSnapshot = "orig-fs";

    if (!systemSnapshot) {
        goto out;
    }

    int rvrename = do_rename(ROOTFSMNT, systemSnapshot, newSystemSnapshot);

    if (rvrename) {
        goto out;
    }

    rv = 0;

    unmount(ROOTFSMNT, 0);
    rmdir(ROOTFSMNT);

out:
    printf("Restoring our ucred\n");

    wk64(our_proc+offsetof_p_ucred, ourucred);

    //cleanup
    vnode_put(devVnode);

    if (!rv) {
        printf("Disabled the APFS snapshot mitigations\n");

        printf("Restarting\n");
        restarting();
        sleep(2);
        do_restart();
    } else {
        printf("Failed to disable the APFS snapshot mitigations\n");
    }

    return -1;
}

可能看起来很复杂。那是因为它本来就很复杂。Pwn20wnd花了很多工作来实现这个绕过,但是一旦知道了bug,问题就开始消解。看,这个bug非常简单:iOS在每次重启后都会恢复到APFS系统快照,如果有的话。问题来了——如果有一个。如果没有,iOS就会像在没有快照的iOS 11.2.6上那样随意地继续引导,而不是以破坏性的方式进行引导循环或出错。

 

那么补丁呢?查找并把快照重命名成其他东西。

 

怎么实现?有点复杂。如果分析代码,可以看到上述快照的名称是动态的(或至少包含动态部分),因此无法对其进行硬编码。动态部分恰好是boot-manifest-hash。在做任何事情之前,Pwn20wnd似乎给自己提供了内核凭证。
你可以通过运行以下指令找到它。
ioreg -p IODeviceTree -l | grep boot-manifest-hash

 

在Electra中,用于查找boot-manifest-hash的所有逻辑都位于apfs_util.c中,如你在这里看到的:

char *copyBootHash(void) {
    unsigned char buf[1024];
    uint32_t length = 1024;
    io_registry_entry_t chosen = IORegistryEntryFromPath(kIOMasterPortDefault, "IODeviceTree:/chosen");

    if (!MACH_PORT_VALID(chosen)) {
        printf("Unable to get IODeviceTree:/chosen port\n");
        return NULL;
    }

    kern_return_t ret = IORegistryEntryGetProperty(chosen, "boot-manifest-hash", (void*)buf, &length);

    IOObjectRelease(chosen);

    if (ret != ERR_SUCCESS) {
        printf("Unable to read boot-manifest-hash\n");
        return NULL;
    }

    // Make a hex string out of the hash
    char manifestHash[length*2+1];
    bzero(manifestHash, sizeof(manifestHash));

    int i;
    for (i=0; i<length; i++) {
        sprintf(manifestHash+i*2, "%02X", buf[i]);
    }

    printf("Hash: %s\n", manifestHash);
    return strdup(manifestHash);
}

这个函数是从另一个名为find_system_snapshot的函数内部调用的,该函数处理查找快照本身的逻辑。该函数将检索到的manifestHash附加到硬编码部分com.apple.os.update,从而得到当前快照的真实名称。然后,它将快照名称返回给调用者,但在将其大声打印出来之前不会返回:P:

const char *find_system_snapshot(const char *rootfsmnt) {
    char *bootHash = copyBootHash();
    char *system_snapshot = malloc(sizeof(char *) + (21 + strlen(bootHash)));
    bzero(system_snapshot, sizeof(char *) + (21 + strlen(bootHash)));

    if (!bootHash) {
        return NULL;
    }
    sprintf(system_snapshot, "com.apple.os.update-%s", bootHash);
    printf("System snapshot: %s\n", system_snapshot);
    return system_snapshot;
}

有了内核的签名,以及快照的正确名称,Pwn20wnd将返回到rootfs_remount.c,以完成此宏大漏洞的最后一部分——重命名快照。他将其重命名为“orig-fs”,然后检查是否重命名成功。然后他恢复自己的凭据并删除内核凭证。最后,重新启动设备。这就是为什么第一次为iOS 11.3-11.3.1使用Electra时,无论使用哪个漏洞,您的设备都将强制重新启动。

 

现在快照已经重命名,iOS没有快照需要挂载,所以它根本不挂载。问题解决了。

 

Google Project Zero的Ian Beer发布的VFS漏洞说明
VFS漏洞称为“empty_list”的问题在于,由于漏洞的性质,它通常很难可靠地工作。然而,它已经在Electra和Un0ver越狱中被使用,因为与Ian Beer发布的另一个名为MPTCP的漏洞相比,它不需要付费的苹果开发者帐户,MPTCP几乎是防弹的,但是需要多路径权限,而没有付费的开发者账号是不可用的。
当然,尽管有时让其工作徒劳无功,但不要求付费开发者帐户,似乎被一般公众所偏爱——直到他们了解了Ignition和其他免费签署MPTCP版本的签名服务。

特别感谢

乔纳森·莱文,因为他的书、工具以及对我的耐心和我奇怪的问题。
@Pwn20Wnd推动我学习更多(更多)和支持
ETA Folks / reditters / naggers使我不时大笑
IBSparkes几个月来一直在回答我的许多问题

图表许可证

这些图都是我自己在繁琐的过程中构建的,但是,我授权它们为MIT。只要你声明我,就可以用它们。

人类的错误!

如果你在文章中发现任何错误,你可以在reddit跟我闲聊,或者更好,在Twitter上告诉我:
2018年10月5日由GeoSn0w(@ FCE365)撰写

 

翻译:看雪翻译小组Daemond
校对:看雪翻译小组 StrokMitream
原文:https://geosn0w.github.io/Jailbreaks-Demystified/


看雪学院推出的专业资质证书《看雪安卓应用安全能力认证 v1.0》(中级和高级)!

最后于 2019-2-2 16:29 被kanxue编辑 ,原因:
收藏
点赞2
打赏
分享
最新回复 (3)
雪    币: 3683
活跃值: 活跃值 (23)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
hchater 活跃值 2018-12-7 08:34
2
1
学习学习
雪    币: 298
活跃值: 活跃值 (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
javacafe 活跃值 2018-12-12 15:23
3
0
感谢分享!学习了。。。
雪    币: 2436
活跃值: 活跃值 (137)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
飘云 活跃值 1 2018-12-28 11:49
4
0
学习
游客
登录 | 注册 方可回帖
返回