fishhook 的原理 和动态库加载

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

        关于 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的目的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容