dyld Interposing

来源:互联网 发布:php测试mysql连接 编辑:程序博客网 时间:2024/05/21 19:40

从 Mac OS X 10.4 开始,dyld 就开始支持库函数的注入了。例如,如果想注入 C 函数库里的 open(),那么首先要实现替代函数的动态共享库,并且在这个库的 __DATA (数据段)里包含__interpose字段。__interpose字段包含原始的函数名和新的函数名。然后利用 DYLD_INSERT_ LIBRARIES 变量使用这个库,就可以打开注入功能了。

下面这段程序替换了 open() 和 close()。

 

然后将代码编译成一个动态链接库,并利用变量 DYLD_INSERT_LIBRARIES 就可以达到目的了。

 

参考:<<Mac OS Internals: A Systems Approch>>

原创粉丝点击