• ベストアンサー

共有ライブラリのシンボル削除

とてもセキュリティを深く考えなければならない共有ライブラリ(.so)を作成しています。 作成したライブラリからシンボルを完全に削除したいのですが,例えば,mylib.so というライブラリ名だとすると $ strip mylib.so とすれば,nmコマンドではシンボルは表示されなくなりました。 しかし,バイナリエディタで mylib.so を開くと,エクスポートするつもりのない内部関数まで,見えてしまっています。 バイナリエディタで開かれても,関数名を見えなくする方法はありますでしょうか。 ご存知の方,ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • onosuke
  • ベストアンサー率67% (310/456)
回答No.1

コンパイルの段階で細工しないと駄目でしょう。 私が思いつく方法は.. !!ぜーーんぶの関数をインライン展開させる!! ぐらいですねぇ。(ファイルサイズがドえらく増加する危険アリ) # シンボルが見えることとセキュリティとの関係のほうが気になる…

mamekuro
質問者

お礼

質問後もいろいろと検討しましたが,どうも現実的な解決策がなさそうなのであきらめました。 ご回答,ありがとうございました。

関連するQ&A