神奇的问题,越狱注入沙盒App插件却影响到了系统进程


#1

** 需求

完成正常 MobileSubstrate 注入插件到沙盒 App
(我做了个插件,通过 plist 过滤只注入到微信,但是却影响到了系统 App,导致部分系统 App 闪退)

** 日志

Safari

表现:直接闪退

*** Terminating app due to uncaught exception ‘CKException’, reason: ‘The application is missing required entitlement com.apple.developer.icloud-services’

MobileSMS

表现:无短信记录,启动后自动打开一个新建短信界面,然后闪退

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

Preference

表现:直接闪退

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSHomeKitUsageDescription key with a string value explaining to the user how the app uses this data.

其余内置 App 表现类似。

** 环境:

iOS: 10.3.3 (h3lix 32bit)(别的设备也收到影响)

为啥我注入到沙盒 App 却会影响到系统进程?这个要怎么恢复呢?


#2

贴一个 *.plist 内容

{
	Filter = {
		Bundles = ("com.tencent.xin");
	};
}


#3

我怀疑是这个越狱/& 越狱用的代码注入机制的问题


#4

iOS 9 和 iOS 10 都出现这个问题,完美越狱也有这问题


#5

hmmmmmmmm
首先你确定是你的插件被注入了吗。ctor里log一下看看。
如果确定是,那么会不会有其他的插件在加载你的dylib,可以在ctor里看下调用栈(Hopefully)

*** Terminating app due to uncaught exception ‘CKException’, reason: ‘The application is missing required entitlement com.apple.developer.icloud-services’
MobileSMS

表现:无短信记录,启动后自动打开一个新建短信界面,然后闪退

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

神秘, 那插件卸载后这些app恢复正常了嘛


#6

插件卸载后 都不需要respring。立即恢复正常。。。我在插件里 ctor 里加了可执行文件的文件名判断,加载都是正常的,没有被注入到别的进程里


#7

wtf…933也正常?


#8

不正常,表现一样,只有 11 是正常的


#9

是因为插件没签名吗
(或者因为腾讯和苹果不可告人的关系


#10

代码有吗,有做什么奇怪的操作吗


#11

我用 OpenDev 做的,一个xcode项目。而且如果注入沙盒app也干不了啥事儿吧


#12

昨天把 OpenDev 重新安装了一遍,奇迹般得可以了。

可能是安装好了 OpenDev 后,又更新了一次 Xcode,破坏了 OpenDev 环境????

有知道的大佬可以解释一下么


#13

咋不用Monkeydev.


#14

MonkeyDev 不够我用。。。。。我自己写了个脚本代替 MonkeyDev 了。