iOS 动态库注入原理

2021-05-04  本文已影响0人  某某香肠

原理

在程序的运行文件mach-O中LoadCommands指令中,存放这需要加载的库,到时候由dyld读取,并且在运行时加载。注意到LoadCommands整个段尾部还留有一些空白。因此在这么多库的后面添加自定义的库即可。

PS:通常都是在后面注入,因为在这些库前面注入的话都要修改后面库的偏移量,比较麻烦,monkeyDev那套貌似可以插入在前面一点点的

同一个项目里的三方库会短暂打包到App包里面(Frameworks目录下,经测试如果最后还是没有用到,可能会被删除)

yololib注入

yololib是一个注入工具,输入命令比较简单,这里简单讲下:

Framwork注入

这个yololib放到环境变量中(usr/local/bin目录下),便可以每个地方都敲出来,这样,在重签名脚本后面加上yololib注入命令便可自动注入

Dylib注入

这也是monkeyDev使用的方式

PS:如果出现image not found错误,记得将dylib文件 copy到项目中去

上一篇 下一篇

猜你喜欢

热点阅读