実行可能ファイルのハードコーディングされたパスのオーバーライド

実行可能ファイルのハードコーディングされたパスのオーバーライド

「/usr/share/nmap/」など、プリコンパイルされた実行可能ファイルに保存されているいくつかのハードコーディングされたパスを上書きして別のディレクトリにリダイレクトしたいと思います。

私が考えている理想的な解決策はroot権限を必要としないので、シンボリックリンクを作成することは絶対禁物です。

(再コンパイルも不可能)

ベストアンサー1

perl -pe 's:/usr/share/nmap/:/other/dir/nmap/:g
  ' /path/to/executable > new-executable

/other/dir/nmapと長さが同じでなければなりません/usr/share/nmap/そうでない場合は、次の文字で埋めることができます。

perl -pe 's:/usr/share/nmap/:/other//////dir/:g
  ' /path/to/executable > new-executable

新しい道はもう長くなりません。/tmpこれが問題であれば、いつでもシンボリックリンクを生成するオプションがあります。

おすすめ記事