JavaScriptCoreフレームワークのフォークがあります。ここにはエクスポートされた独自の関数が追加されています。フレームワークは単にfindをコンパイルします。フレームワーク上nm
を実行する機能(JSContextCreateBacktrace_unsafe
)が実際にエクスポートされることが明らかになった:CFBundleGetFunctionPointerForNameとdlsymは、エクスポートされた関数のNULLを返します。
Leo-Natans-Wix-MPB:JavaScriptCore.framework lnatan$ nm -gU JavaScriptCore.framework/JavaScriptCore | grep JSContextCreateBacktrace
00000000004cb860 T _JSContextCreateBacktrace
00000000004cba10 T _JSContextCreateBacktrace_unsafe
をしかし、私はCFBundleGetFunctionPointerForName
またはdlsym
を使用して、その関数のポインタを取得することができません。どちらも返信NULL
です。最初にdlopen
を使用してフレームワークを開き、CFBundleCreate
を使用し、次にCFBundleGetFunctionPointerForName
を使用しようとしましたが、NULLも返します。
この原因は何ですか?
更新
生臭い何かが起こっています。私はJSC関数の1つに名前を変更し、nm
はこれを反映しています。ただし、dlsym
はまだ名前を変更したのではなく、元の名前の関数を見つけることができます。
まさに私が必要としていたものです。丁寧な答えをありがとう! –