呼び出し元に基づいて動作を変更する必要があるいくつかの C 関数を含むスタティック ライブラリの目的 c があります。https://opensource.apple.com/source/dyld/dyld-210.2.3/include/mach-o/dyld-interposing.hを調べたところ、基本的に C 関数を「スウィズル」するために使用できることがわかりました。
私の質問は - dyld_interpose は、挿入コードを含むすべてのライブラリ/フレームワークで C 関数も挿入しますか?
例えば。
Library1 - C関数を持っていた
void foo(int bar) {
...
}
Library2 - 挿入コードがあります。Library1に依存
void my_foo(int bar) {
...
}
DYLD_INTERPOSE(my_foo, foo);
Library1 と Library2 の両方に依存する Library3 も挿入されますか? アプリケーションに添付されている場合はどうなりますか?フレームワークで動作させることに成功しました。