2.4 fromelf を使用してオブジェクトファイルに含まれるコードを保護するオプション

オブジェクトをサードパーティに配布するとき、そこに含まれるコードを保護した方がよい場合があります。

fromelf には、コードを保護するための --strip オプションと --privacy オプションが用意されています。これらのオプションを使用すると、オブジェクト内のシンボル名を削除したりあいまいにしたりできます。どちらのオプションを選択するかは、削除する情報の量次第です。これらのオプションの効果は、オブジェクトファイルによって異なります。

制約条件

これらのオプションは --elf と組み合わせて使用する必要があります。--elf を使用する必要があるため、 --output も使用する必要があります。

オブジェクトファイルのコードを保護するオプションの効果

オブジェクトファイルの場合:

表 2-2 オブジェクトファイルに対する fromelf の --privacy オプションと--strip オプションの効果

オプション ローカルシンボル セクション名 マッピングシンボル ビルド属性
fromelf --elf ‑ ‑privacy

機能を損なうことなく削除できるローカルシンボルは削除されます。

再配置のターゲットなど、削除できないシンボルは維持されます。このようなシンボルについては、名前が削除されます。 fromelf --text の出力結果には、これらが [Anonymous Symbol] としてマークされます。

セクション名にデフォルト値が付けられます。例えば、コードセクション名は '.text' に変わります。

そのまま残ります。 そのまま残ります。
fromelf --elf ‑ ‑strip=symbols

機能を損なうことなく削除できるローカルシンボルは削除されます。

再配置のターゲットなど、削除できないシンボルは維持されます。このようなシンボルについては、名前が削除されます。 fromelf --text の出力結果には、これらが [Anonymous Symbol] としてマークされます。

セクション名は変更されません。

そのまま残ります。 そのまま残ります。
fromelf --elf ‑ ‑strip=localsymbols

機能を損なうことなく削除できるローカルシンボルは削除されます。

再配置のターゲットなど、削除できないシンボルは維持されます。このようなシンボルについては、名前が削除されます。 fromelf --text の出力結果には、これらが [Anonymous Symbol] としてマークされます。

セクション名は変更されません。

そのまま残ります。 そのまま残ります。

シンボルテーブル全体が削除され、各セクション名が変更された新しい ELF オブジェクトを生成するには、以下のように入力します。

fromelf --elf --privacy --output=outfile.o infile.o
関連する概念
2.3 fromelf を使用してイメージファイルに含まれるコードを保護するオプション
関連する参考文書
1.4 fromelf のコマンドライン構文
3.24 --elf
3.49 --output=destination
3.50 --privacy
3.60 --strip=option[,option,…]
非機密扱いPDF file icon PDF 版ARM DUI0477JJ
Copyright © 2010-2013 ARM.All rights reserved.