回答:
このWebサイトで概説されている手順を試すことができます:SHCを使用してLinuxでBashシェルスクリプトを暗号化する方法。この記事では、SHCシェルスクリプトコンパイラと呼ばれるツールの使用について説明します。
これは、gcc / g ++を使用してビルドする必要がある実行可能ファイルです。
$ ./shc -f random.sh
シェルスクリプトを実行すると、random.sh
このファイルに変換されます。
-rwx-wx--x. 1 ramesh ramesh 11752 Mar 27 01:12 random.sh.x
SHCツールで使用されている方法の優れた分析はありません。SHCツールは過度に強力ではなく、何をしているのかを知っていれば回避できることを示しています。記事はlinuxjournal.comのWebサイトに投稿されました。タイトルはParanoid Penguin-Limitations of shc、a Shell Encryption Utilityです。
注:これらのツールのクラスは、難読化ツールとしてよりよく説明されています。
fg
を実行してフォアグラウンドにする必要がありましたが、正常に動作しました。私はまだ代替案を探しています。
シェルスクリプトを暗号化する場合は、GPGを使用します。もちろん、スクリプトを実行したい人は、まずスクリプトを解読する必要があります。
だれかがスクリプトを実行できるようにして、それを読み取らないようにしたい場合は、暗号化とはまったく関係のないまったく別の問題です。それは難読化と呼ばれます。
そのスクリプトにパスワードやその他の機密情報が含まれている場合は、難読化してもそれが隠されることはありません。遅かれ早かれ、スクリプトはパスワードを使用して何かを行い、その時点でパスワードを探している人にはパスワードが明確に表示されます。
誰かがスクリプトをコピーするのではないかと心配してスクリプトの動作を隠したい場合は、忘れてください。誰も気にしない。
品質に恥じているためにスクリプトを非表示にしたい場合は、修正します。
スクリプトの機能を非表示にするためにスクリプトの動作を非表示にしたい場合は、実行できません。誰かが実行中にスクリプトを見て、それが何をしているかを見ることができます。
ここまで読んだ後もスクリプトを「暗号化」したい場合は、大きなことを誤解していることになります。スクリプトを他人に送信したり、プレーンテキストで送信したりしないでください。
インターネットを検索しているときにこれを手に入れました、提供:Claudio P.
スクリプトを記述します(script-base.sh)
#!/bin/sh
echo "Hello World"
スクリプトを暗号化する(パスワードを与える):
openssl enc -e -aes-256-cbc -a -in script-base.sh > script-enc
ラッパーを書く(script-final.sh):
#!/bin/sh
openssl enc -d -aes-256-cbc -a -in script-enc | sh -
「script-final.sh」を実行し、パスワードを入力すると、ディスクにプレーンテキストスクリプトを書き込まずにスクリプトが実行されます。
基本的に、スクリプトを難読化することはできますが、コンパイルすることはできません。単純な理由は、そのシェルスクリプトは、システムによって一つ一つを実行する必要がある個々のコマンドを解釈され、そしてそれらを備えたシステムによって一つ一つ実行しているとして、あなたはそれらのコマンドを見ることができるsh -x
-vおそらくもフラグ(と国旗)
何が起こっているのかを理解するのに十分なほとんどのプログラマにとって。
必要に応じて変数と一般的なフローを難読化できますが、プログラムによって実行される個々のコマンドを難読化することはできません。これは通常、シェルスクリプトの場合はすべてです。
最も簡単な解決策は、Cなどのコンパイル済み言語でシェルスクリプトを書き換えることです。
スクリプトを公開しない場合は、このサイトにスクリプトを送信してみてください。
インタプリタ言語で書かれたスクリプトのソースコードを暗号化または難読化するという考えには多くの人が反対するかもしれませんが、なぜこれをしたいのか理解しています。
彼の作品を何度も盗まれた誰かとして、私は単に「難読化」または「暗号化」がタブーであるかどうか気にしません。私のスクリプトが保護されていて、暗号化前と同じように機能する限り、かなり満足です。二度と誰かが私のアイデアを取り入れてそれを実行することを二度と許しません。いいえ、スクリプトをコンパイルされた言語で作成することはできません。方法がわかりません。
とにかく、上記のサイトを使用したくない場合は、shcの最新バージョンを試してください。他の人が言及した多くのセキュリティ上の懸念に対処するために、彼らはgithubでそれを更新したと思います。以下をgoogle " shc github "に入力すると、試すことができる利用可能なオプションのホストが表示されます。
幸運を!