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

最近发现了一个应用,感觉已经超出了技术认知范围。

APP 应用伪装上架App Store的,这个 APP 应用内,能够在 运行APP期间,内部再运行一个微信,看了相关的类是微信的类 并且 Document 文件夹下,确实有微信的安装包。

APP 内运行 APP,难道APP 内做了个虚拟引擎?还是有啥黑科技的?真是超出认知范围了。有没有知道这是什么原理。

5 个赞

APP叫什么

微号盒子

有大牛或者知道的,可以研究研究,非常好奇。

这应用截图和界面都对不上。厉害了苹果,对普通开发者重拳出击,对黑产网开N面

1 个赞

这么:ox::fountain_pen:,逆一下看看啊

1 个赞

正好也在研究,这是抓包到的wechat包http://statics.xnservice.com/localize2.data(改名zip后解压得到wechat.app),尝试通过dlopen加载wechat.app/wechat、wechat.app/frameworks/App.framework都失败了

1 个赞

看了下,原理应该是应用内部实现了dyld的功能,通过自定义的dyld加载了第三方的可执行文件,因为是自定义的dyld,代码签名可能就无所谓了,因为它加载过的可执行程序是解密过的。
应用核心部分做了混淆,能力有限,只能认怂。
真正的大佬总是会以各种刁钻的角度进行骚操作,确实是服。

4 个赞

真是骚操作了,确实。意想不到

来个大佬逆出来啊

还不如学习下dyld的原理来的快,毕竟开源

2 个赞

有道理 为啥iOS这么久都没有开源自定义的dyld 安卓都有unidbg

1 个赞

牛哇 但是


好像不是很完美 而且还不知道能不能抵御 后面微信更新后的服务端检测

1 个赞

它有申请通知权限,不知道能不能收到微信的推送? 假如能,估计很有意思,用自己的推送收别人的通知
看了一下里面带的这个微信是重签名过的

1 个赞

下载看了下,确实有点意思。先研究下。
如果微信可以在容器里运行各方面功能正常且不闪退,那么理论上也能加载其他所有app正常运行

1 个赞

感觉如果这个技术掌握,如果能把其它 APP 也做成这样,那么马甲包了,多开了,什么的,甚至一个小型的手机APP 市场、感觉都是个冲击。

其实我在2016年就写过这个技巧,只不过那时候我dlopen的是sdk,微信盒子dlopen的是微信app,本质上没区别
https://www.jianshu.com/p/7f3d76d61bf1

2 个赞

实现dyld需要能分配到可执行的内存,我印象中iOS是不行的。我也比较好奇他是怎么实现的,如果没有重签名的话,我猜测可能有实现arm64的解释器,解释执行微信代码。

1 个赞

虚拟cpu来执行的

1 个赞

想法牛

1 个赞

根本就不是dlopen