3

シンボルが削除された共有ライブラリがあります。既知の方法/ツールを使用してシンボル名 ( nm -Dobjdumpreadelfなど) を取得すると、すべてのシンボルが実際に非表示になっていることがわかります。

ただし、strings共有ライブラリで Linux ツールを実行すると、これらのシンボルの一部が公開されていることがわかります。これらのシンボルをメッセージに出力しないようにしましたが、何らかの形で削除されると予想されるシンボルが出力されます。

私の質問は、stringsLinux のコマンド ライン ツールからでもシンボルを非表示にするにはどうすればよいかということです。どんな助けでも大歓迎です。


編集:strip -strip--all静的シンボルを非表示にするために使用しています。また、-fvisibility=hiddenコンパイルフラグを有効にして、不要な動的シンボルを非表示にします。

4

1 に答える 1

1

から取得man strings

説明

指定された各ファイルに対して、GNUstringsは少なくとも 4 文字の長さの印刷可能な文字列を出力します。

stringsとあなたが言及したツール ( readelf、など)の違いobjdumpは、それらは主に ELF オブジェクトに埋め込まれた DWARF 情報に依存しているのに対し、stringsユーティリティはバイナリ データ (DWARF とは無関係) から印刷可能なシーケンスを出力することです。

stringsユーティリティからでもシンボルを非表示にするにはどうすればよいですか: これが役立つ場合があります。

于 2015-06-19T16:20:59.060 に答える