Mach-O から自力で関数を見つけて呼び出す

「Binary Hacks #72 オブジェクトファイルを自力でロードする」の Mac 版 (手抜きあり).
具体的には

あたりが手抜き.
Universal Binaryのほうは otool -L 相当のことをやる - EAGLE 雑記 でもやったから, まぁすぐにできるだろう.
問題は relocation のほうで, ぶっちゃけ relocation についてよくわかってないのでできないという.これは致命的.
まぁ理解できしだい書き足したいと思う.


add.o から int add(int, int) を探してきて実行するサンプル.
Mac OS X の場合は mprotect(2) の必要は無いので, シンボルの実態を見つけたらそのままキャストして実行しちゃえばOK.
http://gist.github.com/103758