1

ELFで実行objdumpして、特定の関数や変数のアドレスやサイズを取得したり、objcopy後で実行する操作のために別の形式に変換したりする必要があります。特に最初の部分では、 の結果に対して実行される操作の一部がobjdump少し複雑なので、それを実行するための小さな C++ アプリケーションを作成しました。動作しますが、現在 gcc を呼び出しており、そのパラメーターを呼び出しに直接含めていobjdumpます。objdopysystem

私がこのアプローチを好まない理由はいくつかあります。その主な理由の 1 つは、ユーザーが PC にそれらを持っていることに依存するか、独自の実行可能ファイルと共に配布して一種の動的ライブラリとして扱う必要があることです。私も好きではない実行可能ファイルの形式。

私の質問は、(できれば静的に) リンクして同じ操作を実行できる (gcc?) ライブラリの形式はありますか? 特に gcc で生成されたファイルとの互換性に関しては、gcc に近いものを実際に使用したいと思います。

4

2 に答える 2

3

これらの obj* ツールはすべてBFD ライブラリに基づいています。objdump がどのように機能するかを見て、それをコピーすると、独自のコードで同じことができるはずです。

もう 1 つできることは、objdump やその仲間のコードを自分のプログラムにコピーすることです。それはオープンソースであり、それを行うことができます。必要なのは、独自のプログラムを GPL にすることだけです。BFD ライブラリを使用するためには、GPL である必要があります。

于 2017-05-21T20:55:35.350 に答える