发布于:2016-2-24 10:36 | 262463次阅读 作者: 管理员 | 原作者: TP | 来自: 原创
1、MobileSubStrate组件简述 MobileSubStrate是IOS平台越狱插件可成功运行的基础框架,允许第三方开发者在系统的方法中打入运行时补丁从而支持一些方法的扩展,类似于Mac OSX上的Application Enhancer,所以IOS系统越狱环境下安装绝大部分插件,必须先安装MobileSubStrate组件。 MobileSubStrate组件由三部分组成,分别为:MobileHooker、MobileLoader、Safe mode,MobileSubStrate组件可在Cydia中添加“http://apt/saurik.com”源下载并安装。MobileSubStrate安装成功之后截图如下所示: 上图截图为Cydia Substrate,MobileSubStrate组件在0.941更新至0.9.500版本之后,将组件名字更名为Cydia Substrate,本章介绍过程中依然使用传统的名称:MobileSubStrate。下面分别介绍三部分各自作用。 2、MobileHooker MobileHooker组件提供Inline Hook实现,用户可在源代码中包含MobileHooker库提供的头文件实现Hook功能,MobileHooker组件提供Hook功能主要有如下两个函数: void MSHookMessageEx(Class class, SEL selector, IMP replacement, IMP *result); MSHookMessageEx在Object-C中替换Implementation的类选择器,通过替换一个类方法从而实现Hook功能。 MSHookFunction为用户提供了二进制代码层面的Inline Hook功能,MSHookFunction将需Hook的二进制代码写入新的机器指令从而获得执行时机。与MSHookMessageEx的Hook实现方式有本质区别。
3、MobileLoader MobileLoader通常用于第三方开发的TWeak代码,也可理解为加载第三方补丁代码至运行的应用程序中。通过MobileLoader可将动态库文件注入进程中,IOS平台中动态库文件以后缀名为dylib的方式保存。 MobileLoader在应用程序启动时通过使用DYLD_INSERT_LIBRARIES环境变量加载自身,之后查看所有动态库在目录/Library/MobileSubstrate/DynamicLibraries/,并按照每个动态库对应的Plist文件判断是否加载该动态库文件。如下图所示为“/Library/MobileSubstrate/DynamicLibraries/”目录下的动态链接库文件: 通过编写动态库和Plist配置文件,便可让MobileLoader组件将动态库文件注入制定的应用程序中。
4、safe mode Safe mode通常用于保护系统,一旦第三方tweak插件导致SpringBoard崩溃,MobileLoader会进入设备的安全模式并捕获处理异常。在安全模式下,所有的第三方扩展插件将失效,从而提供机会修复系统。 5、工具下载链接 安装源:http://apt/saurik.com ,在该源中搜索并安装MobileSubStrate基础插件。 |
最新评论
发表评论