fishHook地址: https://github.com/facebook/fishhook
fishHook原理表借助MachOView查看目标项目的 MachO文件
1. 找到懒加载符号表, 与之一一对应的动态符号表
懒加载符号表:
动态符号表中 Indirect Symbols:
通过遍历懒加载符号表可以拿到对应函数的index值, 通过这个index值就可以在Indirect Symbols 中找到 所对应的动态符号表
2. 通过 Indirect Symbols 中 Data值 找到 Symbol Table 符号表对应函数
这里的 data值其实是一个下标, 将十六进制 0x7A 用计算器换算成 十进制为 122
来到 Symbol Table 符号表:
对应 #122 标号可以找到 NSLog
3. 再通过 Symbol Table 中 Data 字段 进入 String Table 字符串表找到 目标字符串
这里data 其实是一个偏移值
用 0xCEFC + data 得到就是 字符串字节位置
希望对大家有帮助!
网友评论