| 原作者 | デニス・リッチー ( AT&T ベル研究所) |
|---|---|
| 開発者 | さまざまなオープンソースおよび商用開発者 |
| 初回リリース | 1972年6月12日 |
| 書かれた | C |
| オペレーティング·システム | Unix、Unix ライク、Plan 9、Microsoft Windows |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
| ライセンス | プラン9: MITライセンス |
Unix、Plan 9、およびUnix 系 オペレーティング システムでは、プログラムは、実行可能なバイナリプログラムおよびオブジェクト ファイルから不要な情報を削除するために使用されるコマンド ライン ユーティリティstripです。実行に不要なこの情報には、通常、デバッグデータ、シンボル テーブル、再配置情報、およびその他のメタデータが含まれます。その主な目的は、バイナリ実行可能ファイルのファイル サイズを縮小し、パフォーマンスを向上させることです。このプロセスの出力は、ストリップされたバイナリと呼ばれます。
説明
stripは、コンパイルされたバイナリまたはオブジェクトファイル内の実行に不要な情報を削除するために使用されるGNUバイナリユーティリティです。この情報には通常、デバッグ情報とシンボルテーブルが含まれますが、バイナリに加えられる変更の正確な範囲は、コマンドラインオプションを使用してプログラムの実装者の裁量に委ねられています。[1]
を使用すると、リバースエンジニアリングstripが困難になり、バイナリのセキュリティを強化できます。シンボルとデバッグ情報がないと、バイナリの
プログラム分析が複雑になります。
の効果は、コンパイラまたはリンカーstripを使用して同じプロセスを実行することによって直接達成することもできます。コンパイラは、高水準プログラミング言語(CやC++など)で書かれたソースコードを、コンピュータのプロセッサが実行できるマシンコードに変換するプログラムです。一方、リンカーは、コンパイラによって生成された1つ以上のオブジェクトファイルを受け取り、それらを1つの実行可能ファイルに結合し、それらの間のシンボル参照を解決します。[2]
たとえば、GNUコンパイラコレクション-s(GCC)では、 " ” オプションを使用してこれを実行しますgcc。これにより、リンカーはリンクプロセス中にデバッグ情報とシンボルを削除するように指示され、結果として実行可能ファイルが小さくなります。[2]
GNUプロジェクトは、の実装をGNU Binutilsstripパッケージの一部として出荷しています。は、Microsoft Windowsを含む他のオペレーティング システムに移植されています。
strip
参照
参考文献
- ^ 「Linux Strip Command」。www.computerhope.com 。 2024年10月1日閲覧。
- ^ ab 「「gcc -s」コマンドと「strip」コマンドの違いは何ですか?」。Stack Overflow 。 2024年10月1日閲覧。
- 「strip」、単一 UNIX 仕様、バージョン 2、The Open Group、1997
外部リンク
- – シェルおよびユーティリティ リファレンス、The Single UNIX 仕様、バージョン 4、The Open Group
- – Plan 9プログラマーズマニュアル、第 1 巻
