http://www.jianshu.com/p/8982e9670fc6

Cydia Substrate、MobileHooker

  • MSHookMessageEx
  • MSHookFunction
  • MobileLoader
  • Safe Mode
  • Logos

下面进行一一说明

四、基本原理说明

1,Cydia Substrate 和 Mobile Substrate

* Cydia Substrate 原名为 Mobile Substrate 已经正式更名为 Cydia Substrate。

* 它是越狱后cydia插件/软件运行的一个基础依赖包。提供软件运行的公共库,可以用来动态替换

内存中的代码、数据等所以iOS系统越狱环境下安装绝大部分插件,必须首先安装Cydia Substrate。

* Cydia Substrate主要由3部分组成:MobileHooker,MobileLoader 和 safe mode。

2,MobileHooker、Logos

* MobileHooker用于替换覆盖系统的方法,这个过程被称为Hooking(挂钩)

* 它主要包含两个函数:

void MSHookMessageEx(Class class, SEL selector, IMP replacement, IMP *result);

void MSHookFunction(void*function,void* replacement,void** p_original);

MSHookMessageEx 主要作用于Objective-C函数

MSHookFunction 主要作用于C和C++函数

Logos语法就是对此函数做了一层封装,让编写hook代码变的更直观,上面的例子用的就是logos语法。

MSHookMessageEx 和MSHookFunction 使用方法这里就不介绍了,大家可去看书籍或者查询相关资料。

3,MobileLoader

* MobileLoader用于加载第三方dylib在运行的应用程序中。

* 启动时MobileLoader会根据dylib的同名plist文件指定的作用范围,有选择的在不同进程里通过dlopen函数打开目录/Library/MobileSubstrate/DynamicLibraries/ 下的所有dylib。

4,safe mode

* 因为APP程序质量参差不齐崩溃再所难免,tweak本质是dylib,寄生在别人进程里,如果注入Springboard等。

系统进程一旦出错,可能导致整个进程崩溃,崩溃后就会造成iOS瘫痪。

* 所以CydiaSubstrate引入了安全模式,在安全模

式下所有基于CydiaSubstratede 的三方dylib都会被禁用,便于查错与修复。

* 本人建议自己测试的时候如果HOOK Springboard的时候一定要注意!如果出错,进入安全模式删除插件即可。

总结:

在我的理解就是:我们在Tweak.xm文件里用封装后的logos语法编写代码(底层利用了MSHookMessageEx,MSHookFunction函数,使用 Object-C 的runtime特性发送了method_setImplementation消息)然后theos自动打包成dylib,上传到/Library/MobileSubstrate/DynamicLibraries/里面后,重启Springboard, 利用MobileLoader寻找目录并根据dylib的同名plist文件加载里面的dylib动态库,这时候当我们再打开APP后执行方法时,方法就被替换了。

Cydia Tweak相关推荐

  1. iOS小技能:Cydia Substrate的组成部分、编写Tweak的步骤

    文章目录 前言 I Cydia Substrate] 1.1 MobileHooker 1.2 MobileLoader 1.3 Safe mode II 编写Tweak 2.1 步骤 2.2 Spr ...

  2. ios逆向,tweak简洁使用教程

    准备工作: .爱思助手 .一台已越狱的iphone,并已安装cydia . 安装Theos,安装教程就忽略了,Theos安装起来比较麻烦,主要是网络原因,这里提供一份绿色版本 https://down ...

  3. 2020年 IOS 逆向 反编译 注入修改游戏或APP的调用参数新手系列教程——使用theos tweak 注入hook修改游戏执行代码上传动态头像

    2020年 IOS 逆向 反编译 注入修改游戏或APP的调用参数新手系列教程--使用theos tweak 注入hook修改游戏执行代码上传动态头像 开篇 需求&最终效果 环境要求与即将使用的 ...

  4. iOS 越狱的Tweak开发

    iOS 越狱的Tweak开发 原文链接在我的博客 https://yohunl.com/ios-yue-yu-de-tweakkai-fa/ 上,如果有更新,以博客为准 iOS越狱开发中,各种破解补丁 ...

  5. 防止tweak依附,App有高招;破解App保护,tweak留一手

    相信大多数AppStore开发者在阅读完<iOS应用逆向工程9>之后,对iOS开发的理解会深入不少.一入侯门深似海,tweak的出现让各种裸奔App的作者瞬间跪了,自己的App被玩弄于股掌 ...

  6. IOS逆向--iOSOpenDev进行开发tweak

    初来乍到研究越狱开发,昨天中午开始上网搜索越狱环境搭建,后来查到iosOpenDev软件,是个很方便的编写插件,而且可以直接用Xcode创建的工具,便开始着手学习如何去安装 集合了网上的方法后,我安装 ...

  7. Cydia Tweak--Cydia Substrate

    http://www.jianshu.com/p/8982e9670fc6 Cydia Substrate.MobileHooker MSHookMessageEx MSHookFunction Mo ...

  8. IOS逆向学习-Tweak

    IOS逆向学习-Tweak 1. theos指令及可能遇到问题 2. thes的实战练习 2.1 将桌面的更新数字去掉 2.2. 给微信发现界面增加两行功能 2.2.1 hook代码语法知识 2.2. ...

  9. 我的第一个TWEAK

    0.先看看效果图吧 就是在 原来 显示日期的地方 换成了  "甘心婷留" 1.准备材料 A.已经越狱的iPhone5s ( ios9.3.2 ) 越狱传送门:http://jail ...

  10. iOS逆向小知识:批量部署插件(搭建私有Cydia源)

    文章目录 前言 I. Cydia源服务器搭建 1.1 利用 bzip2 生成 Cydia 可以识别的文件格式,并放入特定目录作为仓库供下载使用 1.2 开启HTTPServer 1.3 将自己的源地址 ...

最新文章

  1. 用计算机计算教学反思,《用计算器计算》教学反思
  2. SQL Server 练习
  3. java ssm框架详解_Java的SSM框架怎样才算真正掌握?
  4. python请输入_不断提示用户输入Python
  5. 为什么Kubernetes要引入pod的概念,而不直接操作Docker容器
  6. android 游戏 重力
  7. 踩坑记录--mybatisplus模糊查询中文时 有数据但 like查不到
  8. SQL Server2008R2查询数据库的物理路径
  9. c++第三次上机实验项目四
  10. ios8中百度推送接收不到
  11. Application_Start 不执行
  12. springcloud- FeginClient 调用统一拦截添加请求头 RequestInterceptor ,被调用服务获取请求头...
  13. python 自动加载_【python】命令行下自动加载模块和tab补全功能
  14. word2019加载mathtype
  15. python行列式值计算程序_2、3阶行列式计算(python代码)
  16. 「计算机网络」五层因特网协议栈的简要介绍和分组名称
  17. 使用Kolla镜像Openstack多节点快速搭建部署
  18. 大一新生必看,自学必看,里昂详解数据结构之链表
  19. 常用字符串库函数总结
  20. 0-c语言入门这一篇就够了-学习笔记(一万字)

热门文章

  1. camera内存优化
  2. RW文档翻译学习——RW-BLE-KERNEL核心函数功能
  3. lzg_ad:Windows Embedded Standard 安装说明
  4. 新注册第一帖----------------------乱码新手自学.net 之Linq 入门篇
  5. 微信 java抓取_【java】微信文章抓取
  6. 各种定律(心理学定律、思考定律)
  7. 一款备受九零后喜爱的独特界面,VC++屏幕保镖(锁屏程序)附源码
  8. windows10获取超级管理员权限
  9. 解决笔记本HDMI外接显示器没声音的问题
  10. [Luogu P3704] [BZOJ 4816] [SDOI2017]数字表格