编译原理iOS 性能OC 底层

fishhook 的原理 和动态库加载

2019-02-16  本文已影响0人  介和

        这几天,反复的找动态库加载 和 可执行文件 结构的 资料学习,开始的时候,懵懵懂懂。但是,随着这几天的深入学习,逐渐的豁然开朗起来。

        关于 fishhook 的原理 ,和动态库加载,rebase ,binding 过程 的 文章,我就不写了,因为网上有好多了。  我把我看了的几篇 贴在这里表示纪念一下吧。

https://www.jianshu.com/p/c58001ae3da5   深入剖析 iOS 性能优化

https://www.jianshu.com/p/693683967718   fishHook原理

https://www.jianshu.com/p/6514b0a9d7c4   Fishhook 学习笔记

https://www.jianshu.com/c/1efd74950537?utm_source=desktop&utm_medium=notes-included-collection

总结: 

       fishHook其实 就是:

      通过 Load commands 中的 linkedit  -> Symbol table  ,string table  ->  _DATA的 Lazy Symbol Pointers 与 Non-Lazy Symbol Pointers   。修改懒加载表(Lazy Symbol Pointers)、非懒加载表(Non-Lazy Symbol Pointers)中的符号地址的指向,从而达到hook的目的。

上一篇下一篇

猜你喜欢

热点阅读