美文网首页编译原理iOS 性能OC 底层
fishhook 的原理 和动态库加载

fishhook 的原理 和动态库加载

作者: 介和 | 来源:发表于2019-02-16 22:59 被阅读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的目的。

    相关文章

      网友评论

        本文标题:fishhook 的原理 和动态库加载

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