0

x86-64 で Linux を使用しています。ユーザープログラムがそのコードの実行を開始する直前に(ただし、ローダー/リンカーがライブラリなどをマップした後)、システムコールを挿入する必要があります(基本的にOSへのトラップが必要です)。バイナリの変更/再コンパイルを必要とせずにこれを達成するための最良の方法について誰か提案がありますか?

4

1 に答える 1

2

LD_PRELOAD 環境変数を使用して、libc の前にカスタム ライブラリをロードします。これにより、_start が実際の main() 関数を開始するために使用しているように見える __libc_start_main の呼び出しがインターセプトされます。

または、デバッガーのように ptrace() を使用してプロセスにアタッチします。

于 2012-06-29T15:19:44.387 に答える