美文网首页
5.MachO文件

5.MachO文件

作者: JoyChenSeven | 来源:发表于2019-10-22 11:15 被阅读0次

Method Swizzle

利用OC的Runtime特性,动态改变SEL(方法编号)和IMP(方法实现)的对应关系,达到OC方法调用流程改变的目的。主要用于OC方法。

例如,处理url 中的中文

需要创建NSURL 的分类,在load方法中进行方法的交换即可,外部不需要导入头文件,直接调用原始方法就可以

不需要导入头文件,是因为 分类在加载的时候,load就会执行了。

方法的调用底层走的是 消息机制, msg_send, 调用类的方法是给类的对象发送消息,类方法也是给类对象那个发送消息,类也属于一个对象。

方法实现就是方法的地址(IMP),method_exchangeImplementations 方法的实质就是交换了SEL 和 IMP 的指向。

po : 指令,p是执行,o是object,po就是执行对象的description 方法

查看头文件

使用class-dump 生成headers, $ ./class-dump -H xxx -o ./headers/

然后用sublime 查看 ,command + shift + F ,搜索全部  @interface WCAccountLoginControlLogic

如下,重签名、加入framework、跑脚本、即可 Hook 注册的代码

动态调试 LLDB ,静态分析(头文件)

根据view debug 来寻找控件,找到它的类,如果在本类中没有找到想要的东西,可以去它的父类中寻找,以此类推。

相关文章

  • 5.MachO文件

    Method Swizzle 利用OC的Runtime特性,动态改变SEL(方法编号)和IMP(方法实现)的对应关...

  • wx - 学习笔记

    wxml 文件 wxs 文件 js 文件 wxml 文件 wxs 文件 js 文件

  • 文件操作/文件

  • ubuntu文件压缩与解压缩

    .tar 文件 .gz文件 .tar.gz文件、 .tgz文件 .zip文件 .rar文件

  • ubuntu常用命令和知识整理

    文件操作相关 sudo cp 文件 文件目录 //复制文件sudo mv 文件 文件目录 //移动文件su...

  • .dll文件、.lib文件、.h文件

    最基本的静态链接过程如图所示。每个模块的源代码文件(如.c)文件经过编译器编译成目标文件(Object File,...

  • Go文件IO操作 - 待完善

    FileInfo接口 文件路径 创建目录 创建文件 打开文件 删除文件 读取文件 写入文件 复制文件 ioutil...

  • Node内置模块——FileSystem

    文件操作 写入文件(覆盖式 / 追加式) 复制文件 读文件 删除文件 重命名/移动文件[夹] 文件夹操作 新建文件...

  • python 文件操作

    读写文件通常包含以下操作: 打开文件。获取文件对象 读写文件、对文件内容进行操作。 关闭文件。使用文件对象关闭文件...

  • Linux学习(五)——Linux文件系统

    Linux文件系统 文件系统和文件类型 文件类型 普通文件(-) 目录文件(d) 块设备文件(b) 字符设备文件(...

网友评论

      本文标题:5.MachO文件

      本文链接:https://www.haomeiwen.com/subject/xyzmmctx.html