超出技术认知范围的一个 APP -- iOS APP 应用里面运行一个其他 IPA。

UraniumVCPU: An arm/arm64/x86/x64 virtual CPU framework for macOS/iOS/Android. 研究一下这个 原理应该差不多

知道哪里有参考文档吗,这个上面看了下,不知道怎么玩 ,也不确定实现原理是不是类似这个。。。

1、试玩了一下 UraniumVCPU ,其工作原理是将在内存中函数地址对应的汇编进行 “解析” 操作,那么问题来了,“VChat” 的 MachO都没有加载进内存,没有分配内存空间,怎么来的函数指针给 这个解析器操作呢?实现原理为解析器说法的疑问点之一。这个框架有点类似 Unicorn Engine(魔改?);

2、然后我换了个思路,那么将我自己的Demo加载进内存后,直接映射调用Demo中的 main 方法会怎样呢?使用lipoMachO 瘦身 结合 app2dylib 工具,将demo1的可执行文件转成 dylib , 在 Demo2 内 使用 dlopen 打开 demo1.dylib , 在自己的界面点击按钮触发调用 demo1main 方法,由于 main 会绑定一个 继承自 UIResponder 遵循 UIApplicationDelegate 协议 的对象(通俗来说是日常常见的AppDelegate),这个对象在App生命周期里只能存在一个,从而报错:“AppDelegate 重复创建”(大概意思,忘记copy log了),如果这个App单纯的是将 “VChat” 的 main() 执行的话会有这个问题,还有 在 main 之前的 load 方法的调用该如何解决呢?

3、签名问题,尝试dylib加载进内存时,dylib也需要签名,如果dylib没有签名,会在 dynamic linker ( dyld ) checks 的时候报未签名。显然这个App也不是这种方式加载 MachO 的,在越狱机上也没发现被转成 dylib 的 MachO;

各位同学,还有什么思路吗,或者有什么切入点可以逆这个App吗。
黑科技,だいすき

内存映射表里面有挺多指向应用自己可执行文件的大段,但是内容对不上,应该是加载了的

公用AppDelegate不就行了 还有签名他都用cpu虚拟执行了 应该不用签名才对啊

1、UraniumVCPU 这个是个解析器,类似python 解析器,但是 UraniumVCPU 他有个先前条件是解析内存中对应的方法的汇编,下载下来的文件并没有加载到内存中,应该不是用这个(也不排除是私有版,毕竟我没证据),这个工具提供的API只有两个,两个方法的API参数都是传(原方法)函数指针。

2、共用AppDelegate的话,那么启动完毕后,这个方法将不会再次被调用,如果不能再次调用,“VChat” 中的类似方法也没有被加载

- application: didFinishLaunchingWithOptions:

目标App中 load 函数也同理,而且如果 main 中有操作的话也会丢失,共用AppDelegate 不是理想中的实现方案

那你觉得他是用什么呢

不共用AppDelegate也是可以的 就是自己初始化目标app的一些环境咯,动态加载main controller

鄙人不才,没办法找到切入点,我并没有具体想法,如果凭主观猜测做技术的话,我估计不行

现在这个app还能打开吗?
我看抓包显示地址是https://www.xinzhu.ltd
有人了解过这个东西么

还在研究 23333

把别人app修改自签名然后搞成自己的app,这种本来是违规违法的吧,这种东西不在明面也就罢了,在明面还上appstore那真是胆子大。只能说什么时候出事的问题

1000% 违法

大佬,我想了解一下,如果在非越狱状态下,实现了dyld的功能,那是不是可以用dobby的inlinehook去hook那些个sub了?因为在我的认知下,非越狱下即使app注入了dylib安装,也无法实现hook sub

非越狱你怎么实现dyld 都加载不了app吧

inline hook(实际需要的是动态代码签名)在没洞的情况下不可能。
不知道有没有人研究用webkit的rwx搞代码执行,不过好像没用webkit都在独立进程里

有人试过魔改macho可以实现

GitHub - khanhduytran0/LiveContainer: Run unsigned iOS app without actually installing it! 有点类似了

2 个赞

你这跟他做法完全不一样的

ARM64解释器可以参考https://github.com/61bcdefg/unicorn-tcti