私は興味深い考えがあります。私は単純なバイナリをダンプするためにobjdumpを使用していました。バイナリには多くの関数があります。これらの関数にリンクする別のCプログラムを作成することは可能ですか?入力と出力のパラメータを知っていると仮定します。いくつかの関数を通常のバイナリでリンクすることはできますか?
いくつかのより多くの情報: FILE1:
#include <stdio.h>
int add(int x,int y)
{
return x+y;
}
int main(int argc, const char *argv[])
{
printf("%d\n",add(3,4));
return 0;
}
FILE2 test.cの:Test1.cに
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("%d\n",add(8,8));
return 0;
}
gcc test.c -o test.exe
gcc test1.c test.exe -o test1.exe
出力:
ld: in test.exe, can't link with a main executable
collect2: ld returned 1 exit status
私は共有ライブラリとLD_PRELOADメソッドに興味があります。私が読むことができる詳細がいくつかありますか? – Patrick
http://stackoverflow.com/questions/426230/what-is-the-ld-preload-trickがあなたを助けてくれるかもしれません... – Jason
ここにいくつかの情報があります:http://lca2009.linux.org.au/slides /172.pdf – Jason