如何在QEMU上执行iOS并启动一个交互式bash shell,内含整个安装流程并且提供了相关工

访客5年前黑客工具883
咱们在上一篇文章中介绍如安在QEMU上履行iOS并发动一个交互式bash shell,在第这篇文章中,咱们将详细介绍为完结这些方针所进行的一些详细的项目研讨。 本文的研讨项目是以该项目为根底进行的,咱们本次的意图是,在没有安全监控器的状况下,在不同的iPhone上发动版别稍微不同的iOS内核,一起在运转时修补内核以使其发动,运转预先存在ramdisk映像以及没有交互式I/O的launchd 服务。在这篇文章中,咱们将介绍: 1.怎么将代码作为新设备类型刺进QEMU项目中。 2.如安在不运转时或事前修补内核的状况下发动内核; 3.如安在EL3中加载和履行安全监控器映像; 4.怎么增加新的静态信赖缓存,以便能够履行自签名的可履行文件; 5.怎么增加新的launchd 项以履行交互式shell,而不是ramdisk上的现有服务; 6.怎么树立完好的串行I/O; 该项目现在能够在qemu-aleph-git上取得,其间包括qemu-scripts-aleph-git所需的脚本。 QEMU代码 为了能够稍后在更新版别的QEMU上从头设置代码并增加对其他iDevices和iOS版别的支撑,咱们将一切QEMU代码更改都移动到了新模块——hw/arm/n66_iphone6splus.c 中,它是QEMU中iPhone 6s plus(n66ap)iDevice的首要模块,可用于: 1.界说新设备类型; 2.在不同的反常等级的内存中界说UART内存映射I/O、加载的内核、安全监控器、发动参数,设备树,信赖缓存的内存布局。 3.界说iDevice的专有寄存器(当时什么都不做,仅仅作为通用寄存器操作); 4.界说设备的功用和特点,例如支撑EL3并在安全监控器进口点开端履行。 5.将内置定时器中止连接到FIQ; 6.获取用于界说以下文件的命令行参数:内核映像,安全监控器映像,设备树,ramdisk,静态信赖缓存,内核发动参数。 另一个首要模块是hw/arm/xnu.c,它担任: 1.将设备树加载到内存中,并将ramdisk和静态信赖缓存地址增加到实践加载它们的设备树中。 2.将ramdisk加载到内存中; 3.将静态信赖缓存加载到内存中; 4.将内核映像加载到内存中; 5.将安全监控器映像加载到内存中; 6.加载和设置内核并维护监控器发动参数。 在没有补丁的状况下发动内核 依据原有的项目,咱们现已能够运用不同的iOS版别和不同的iPhone发动到用户形式,一起运用内核调试器在运转时修补内核。之所以修补程序是由于:在更改设备树并从ramdisk发动之后,咱们封装了一个不回来的函数,等候一个永久不会发作的事情。经过在内核调试器中放置断点并挨个运转,咱们发现不回来函数是IOSecureBSDRoot(),它能够在Apple发布的xnu-4903.221.2版别的XNU代码中找到: 在运转时,调试内核自身时发作的状况: 此函数不回来,由于对pe->callPlatformFunction()的调用不会回来。关于这个函数,咱们没有任何参阅代码,所以内核被反汇编: 经过查看这个函数,咱们能够看到不回来函数对x19中目标的特定成员进行了许多处理,而且流程依据这些成员而改变。咱们测验了一些 *** 来了解这些成员所代表的详细内容,但都没有成功。这些成员好像的确处于特别的偏移状况,所以过了一段时间,咱们试着运用Ghidra在整个内核中搜索运用目标及其成员在偏移量0x10a,0x10c和0x110的函数 ,很走运!咱们找到了这个函数: 在这个函数中,很简略看出当prop secure-root-prefix不在设备树中时,偏移量为0x110的成员坚持不变,值为0,且原始函数(pe->callPlatformFunction())回来,能够看出,没有必要修补内核。 加载安全监控器映像 现在,咱们能够将iPhone X映像发动到用户形式。此映像直接发动到EL1而且没有安全监控器。所以,咱们决议运用iPhone 6s plus的另一个映像,由于Apple在那里留下了许多符号,咱们以为这会使研讨变得更简略。事实证明,没有KTRR(内核文本只读区域)的KPP(内核补丁维护)设备有一个安全的监控器映像,需求加载自己的发动参数,并在EL3中履行。该项意图这一部分是关于查找内核文件中嵌入的安全监控器映像,加载它,了解发动参数结构,加载映像和装备QEMU以开端履行EL3中的进口点。完结这些过程后,依然没有成功。原因好像是安全监控器映像测验解析内核库(经过内核发动参数读取)中的内核mach-o标头,且咱们没有在该基地址处的内核映像。这一切都发作在以下函数中: 咱们信任这个函数担任KPP功用,并假定它依据内核部分应有的权限保存内核部分的映射,可是这个假定依然需求验证。 从原有项意图代码中能够看出,virt_base参数指向的是加载内核的更低段: static uint64_t arm_load_macho(struct arm_boot_info *info, uint64_t *pentry, AddressSpace *as) { hwaddr kernel_load_offset = 0x00000000; hwaddr mem_base = info->loader_start; uint8_t *data = NULL; gsize len; bool ret = false; uint8_t* rom_buf = NULL; if (!g_file_get_contents(info->kernel_filename, (char**) &data, &len, NULL)) {[1][2][3][4][5][6][7][8][9][10][11][12][13]黑客接单网

相关文章

电话号码出售,网络黑客高手专业微信黑客联系方式,找黑客帮忙魔域永恒

假如方针站点满意条件1和2,可是对方没有存储灵敏信息,也不能履行一些灵敏的操作。 那么装备不妥的crossdomain.xml也引起不了严峻的损害。 可是假如方针站点存在灵敏信息或许具有灵敏操作。 那...

黑客j接单_找一个黑客找回至尊宝-找黑客帮忙赎回网赌犯法吗

「黑客j接单_找一个黑客找回至尊宝-找黑客帮忙赎回网赌犯法吗」SCK(CLK):时钟信号,由主设备发作。 再次检查链接正常root@ubuntu:/var/www/html# autossh -M 5...

qq业务乐园网站_岳阳找黑客-如何在天涯上找黑客

「qq业务乐园网站_岳阳找黑客-如何在天涯上找黑客」HTML Application生成歹意的HTA木马文件;也是默许数据库地址。 现在传奇4F很多都是这个。 呵呵我刚还没事搞了个呢`解码后全体代码...

网上有黑客接单吗,快乐牛牛黑客联系方式,哪里怎么找黑客帮忙

图5 post提交无法绕过考虑到相关信息的敏感性和特殊性,本陈述中和受害者相关的名字、邮箱、相片、文档等个人信息咱们将做含糊处理;涉及到的详细的方位,咱们将做扩大含糊处理;一起为防备进犯者使用揭露信息...

黑客接单先办事后付款,找黑客 犯法,找黑客需要多少钱

用已任何已注册用户的身份成功登录blog。 “麦芽地”传达源虽告一段落,但百度云ekangwen206用户共享的247个文件中悉数带有可以感染iOS体系的“破界”歹意代码,一切文件均为苹果手机与平板的...

黑客接单项目,如何知道黑客联系方式,闲鱼被骗找黑客

这一关难度增加了一点点,不过毕竟是基础训练。 这儿要用到“管道”的常识,详细请谷歌^^; 直接用: <?phpimport java.rmi.Remote;通用的指令履行缝隙防护办法通常是...