
CentOS 7に脆弱性スキャンツール「OpenVAS」をインストールする
リモートから脆弱性をスキャンす…
-->
シェルスクリプトの中身を見れないようにしようと思って調べていた所、shcというシェルスクリプトをバイナリ化するプログラムがあるようだったので使ってみる事にした。
前提として、利用にはmakeが必要なので、gccが必要。
まずはインストール。
こちらのページから、以下のコマンドでダウンロード、コンパイルを行う。
HTTP="http://www.datsi.fi.upm.es/~frosal/" && curl -s $HTTP | grep .tgz | awk -F\" '{print $2}' | sed 's/^.\///g' | xargs -I{} echo $HTTP{} | xargs wget tar xzvf shc-*.tgz cd shc-* make make install
これでインストールが完了した。
shcコマンドは、基本的に以下のようにコマンドを実行するだけで、「指定したシェルスクリプト名.x」というバイナリファイルを作成してくれる。
shc -f バイナリ化するシェルスクリプトPATH
実際に、以下のようなシェルスクリプトを作成し、バイナリ化してみる。
●test.sh
#!/bin/sh echo test echo $0 pwd
[root@BS-PUB-CENT7-01 ~]# pwd /root [root@BS-PUB-CENT7-01 ~]# ls -l test.sh* -rw-r--r--. 1 root root 32 4月 6 00:35 test.sh [root@BS-PUB-CENT7-01 ~]# cat test.sh #!/bin/sh echo test echo $0 pwd [root@BS-PUB-CENT7-01 ~]# sh test.sh test test.sh /root [root@BS-PUB-CENT7-01 ~]# shc -f test.sh [root@BS-PUB-CENT7-01 ~]# ls -l test.sh* -rw-r--r--. 1 root root 32 4月 6 00:35 test.sh -rwx--x--x. 1 root root 11152 4月 6 00:37 test.sh.x -rw-r--r--. 1 root root 9283 4月 6 00:37 test.sh.x.c [root@BS-PUB-CENT7-01 ~]# file test.sh* test.sh: POSIX shell script, ASCII text executable test.sh.x: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=e335100ddec4e55e908a1d62a53d2c24156f9de0, stripped test.sh.x.c: C source, ASCII text [root@BS-PUB-CENT7-01 ~]# ./test.sh.x test ./test.sh.x /root
確かに、シェルスクリプトをバイナリ化できた。
あまり使う機会は無いだろうけど、いつかは利用するかもしれない。