問題タブ [objcopy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ac/c++ ライブラリとしての objdump および objcopy
ELFで実行objdump
して、特定の関数や変数のアドレスやサイズを取得したり、objcopy
後で実行する操作のために別の形式に変換したりする必要があります。特に最初の部分では、 の結果に対して実行される操作の一部がobjdump
少し複雑なので、それを実行するための小さな C++ アプリケーションを作成しました。動作しますが、現在 gcc を呼び出しており、そのパラメーターを呼び出しに直接含めていobjdump
ます。objdopy
system
私がこのアプローチを好まない理由はいくつかあります。その主な理由の 1 つは、ユーザーが PC にそれらを持っていることに依存するか、独自の実行可能ファイルと共に配布して一種の動的ライブラリとして扱う必要があることです。私も好きではない実行可能ファイルの形式。
私の質問は、(できれば静的に) リンクして同じ操作を実行できる (gcc?) ライブラリの形式はありますか? 特に gcc で生成されたファイルとの互換性に関しては、gcc に近いものを実際に使用したいと思います。
c - 妖精。すでにリンクされている DSO のエクスポートされたシンボルを非表示にする
私はすでにコンパイル済み/リンク済みの DSO ファイルを持っています。これは、実際に非表示にする必要があるいくつかの関数をエクスポートします。コードをそのライブラリにリンクしようとすると、自分のシンボルではなく不要なシンボルが検出されます。ソース コードにアクセスできないため、バイナリを再構築して、不要なものに適切な可視性属性を使用することができません。
ここで唯一の解決策が見えます-不要なシンボルフォームの可視性GLOBAL
をHIDDEN
直接バイナリに変更します。そのような変更のための明らかなツールは ですobjcopy
が、問題は、objcopy
動的シンボル テーブルを変更するオプションがなく、通常のシンボル テーブルしか処理できないことです。
ダイナミック シンボル テーブルのシンボルの可視性を変更できるツールを知っている人はいますか?