随着不同应用程序的兴起,它们劫持iOS模拟器(例如flawless或sherlock),我很好奇这是如何完成的。据我所知,基于SIMBL的选项是有的,但我认为上述应用没有使用它。此外,还有Injection(https://github.com/johnno1962/injectionforxcode),它使用XPC来注入代码。我猜想有不同的方法(例如UI更改是如何完成的?无论是在flawless层之上还是在sherlock中进行变量更改),因此如果有人能指点我正确的方向就太好了。
我没有使用过这些插件,但是:
据我所知,Sherlock会从模拟器中加载应用程序中的代码。 (https://www.hackingwithswift.com/articles/131/sherlock-turbocharges-your-ios-simulator)
Flawless在网站上看起来只是在模拟器窗口上叠加了一个UIWindow。即使是一个单独的应用程序也可以做到这一点。(https://flawlessapp.io/)
=> 据我所知,模拟器仍没有公开或私有的API可用
=> 我认为针对模拟器内的应用程序更容易
(还有其他方法,如通过操作默认值或通过玩弄simctl进程)