シェルスクリプトをバイナリ実行可能ファイルに変換する方法は?


36

シェルスクリプトをバイナリ実行可能ファイルに変換して、他の人がそれを編集または読み取れないようにします。バイナリ実行可能ファイルに変換する方法はありますか?




@ l0b0そのリンクは2つの理由に言及しています。3番目の理由:インタープリターがインストールされていないマシン上で実行したい(例えば、shのみを搭載したマシンでbashスクリプトを実行したい)。4番目の理由:何らかの理由でsetuidルートが必要です(たとえば、ユーザーがsudoなしでボリュームをマウントできるスクリプト)。
カルマリオス

回答:


42

shcはあなたが探しているものです。ここで入手:shc
Extract、cdでdir、makeそして./shc -f SCRIPT。できた

これを行うために必要なものはすべてここにあります:
SHC Howto


8
+1すごい、それは面白い。プロセスが説明されているとおりに正確である場合、これはパスワードを隠す弱い方法であることに注意してください-実行可能ファイルの構造を知っている誰かがそれを抽出することができます。ただし、スクリプトを偶然のオブザーバーから隠す場合には非常に効果的です。この方法でプリコンパイルされたスクリプトの実行が高速であるかどうかを知りたいと思います。
goldilocks

21
スクリプトの内容を表示するために、できることのようにbash(またはにsh基づいてbash)動作しないことに注意してくださいenv SHELLOPTS=verbose ./script.x。他のシェルをバイパスする簡単な方法もおそらくあります。
ステファンシャゼル

4
shcのマニュアルページから、「残念ながら、実際のCプログラムのように速度が向上することはありません。」datsi.fi.upm.es/~frosal/sources/shc.html
アダム

shcは3.9.0に更新されました: github.com/neurobin/shc
Jahid

SHCは期待する速度の改善をもたらさないかもしれませんが、スクリプトのより良い翻訳を得るためにSHC自体をハッキングする可能性を提供します。クリーンなシェルスクリプトを作成してからSHCを改善する方が、Cプログラムを最初から作成したり、シェルスクリプトを畳み込んで高速化したりするよりも生産的です。
カズ

1

ここでの目的がシェルスクリプトを非表示にして読み取りまたは変更できないようにすることである場合は、次のWebサイトに貼り付けてみてください。

暗号化と難読化の組み合わせ

このサイトにスクリプトを送信すると、zipファイルが作成されます。このzipファイルからスタンドアロンの実行可能ファイルを生成するには、次の手順を実行します。

  1. スクリプトを送信した後、ダウンロードリンクを右クリックします
  2. Unixホストに移動し、wgetまたは(curl -O)ダウンロードリンク
  3. zipファイルを解凍します
  4. cd EnScryption.com
  5. ./(your-script.sh)

ステップ5は、スクリプトを自動的に構成し、スタンドアロンコピーを生成します。その後、このスタンドアロンコピーを別のホストにコピーするか、必要に応じて配布できます。一度暗号化すると、スクリプトの名前を変更できないことに注意してください。これはセキュリティ上の理由によるものです。

時間があれば、利用可能な別のオプションは、独自の安全な難読化アルゴリズムを考え出すことです。スクリプトを移植可能にする場合は、ほとんどのUnixシステムですぐに使用できるツールを使用する必要があります。opensslまたはbase64。これには多くの時間が必要です。しかし、動機がそこにあれば、スクリプトの公開を不可能にするか、少なくとも非常に時間がかかるようにすることは確かに可能です!


13
このようなサービスにはお勧めしません。あなたが彼らにあなたにそれを渡す前に、彼らがそれにマルウェアを注入しないことを決して確かめることができません。作成者自身がそうしようとしていない場合でも、攻撃者はそのような注入を密かに行うためにサーバーを危険にさらすことができます。
ddnomad

「スクリプトを送信した後」は、コードを保護することの正反対です。
ジュゼッペウルソ

-1

bzexeはファイルを変換し、圧縮することもできます


1
これにより、ユーザーが元のシェルスクリプトを取得するためにファイルを抽出することをどのように防ぐことができるかはわかりません。圧縮は何も隠しません。
クサラナナンダ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.