シェルスクリプトをバイナリ化する

Linuxのシェルスクリプトは手軽に使えて便利!
でもソースは見られたくない場合もある・・・

そんな時に役立つのがシェルスクリプトをバイナリ化するツール「SHC」です。

SHCは以下サイトよりダウンロードできます。

http://www.datsi.fi.upm.es/~frosal/

ダウンロードしたら圧縮ファイルを解凍し、SHCをビルドします。

tar zxf shc-3.8.9
cd shc-3.8.9
make

ビルドが成功するとSHCが使えるようになります。

試しに以下コマンドを実行してsample.shをバイナリ化してみます。

shc -rv -f sample.sh

バイナリ化は内部的にシェルファイルをC言語ファイルに変換し、変換したC言語ファイルをビルドすることでバイナリ化するようです。
バイナリ化されたファイルは「シェルファイル.x」という名前になります。
したがって、上記のコマンドを実行するとsample.sh.xが作成されます。

あとはsample.sh.xを実行するだけです。

./sample.sh.x

SHCの詳細な使い方は以下マニュアルに記載されているので、より詳細な機能を使いたい場合はこちらを見れば問題ないでしょう。

http://www.datsi.fi.upm.es/~frosal/sources/shc.html

バイナリ化されたシェルファイルの中身を書き換えることは出来ないので、書き換えたい場合はもう一度SHCでバイナリ化を行う必要があります。
ソースの中身を見られたくないためにわざわざC言語でソースを書く手間を省けるので、そういう場合には非常に重宝すると思います。

ちょっとしたかゆいところに手が届く、そんな便利なツールの紹介でした。

■参考サイト
シェル・スクリプトをバイナリ化 (shc)