1. 程式人生 > 實用技巧 >SHELL指令碼加密工具shc和gzexe

SHELL指令碼加密工具shc和gzexe

  有時候我們的shell指令碼會包含一些敏感資訊,例如:使用者名稱、密碼、檔案的路徑、IP地址等。如果不希望這些資訊別人看到,或者在執行時洩露敏感資訊。對shell指令碼進行加密是個不錯的選擇。

方法一:shc  

  shc是一個加密shell指令碼的工具.它的作用是把shell指令碼轉換為一個可執行的二進位制檔案.用shell指令碼對系統進行自動化維護,簡單,便捷而且可移植性好。

shc 安裝
yum -y install shc

wgethttp://down1.chinaunix.net/distfiles/shc-3.8.3.tgz

官方網址:http://www.datsi.fi.upm.es/~frosal/sources/

使用方法:

shc -r -f script-name 注意:要有-r選項, -f 後跟要加密的指令碼名.

執行後會生成兩個檔案,script-name.x 和 script-name.x.c

script-name.x是加密後的可執行的二進位制檔案.

./script-name 即可執行.

script-name.x.c是生成script-name.x的原檔案(c語言)

方法二:gzexe

系統自帶,無需安裝。
使用如下命令加密:
gzexetesh.sh
加密完成後,test.sh即加密後的檔案,同時原始檔備份為test.sh~。
加密同時會壓縮檔案
加密功能比較弱,只能滿足一般需求。
可能會有風險,即加密後腳本不能正常執行。下面測試結果表面加密後的檔案可以執行。

# cat test.sh 
#!/bin/bash
echo "This is a test script of gzexe"
# sh test.sh 
This is a test script of gzexe
# gzexe test.sh 
test.sh:          0.0%
# ls -la
total 32
drwx------  2 root root 4096 Dec  2 21:29 .
drwxr-xr-x 13 root root 4096 Jun 28  2019 ..
-rw-r--r--  1 root root  877 Dec  2 21:29 test.sh
-rw-r--r-- 1 root root 50 Dec 2 21:29 test.sh~ # cat test.sh~ #!/bin/bash echo "This is a test script of gzexe" # cat test.sh #!/bin/sh skip=44 tab=' ' nl=' ' IFS=" $tab$nl" umask=`umask` umask 77 gztmpdir= trap 'res=$? test -n "$gztmpdir" && rm -fr "$gztmpdir" (exit $res); exit $res ' 0 1 2 3 5 10 13 15 if type mktemp >/dev/null 2>&1; then gztmpdir=`mktemp -dt` else gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir fi || { (exit 127); exit 127; } gztmp=$gztmpdir/$0 case $0 in -* | */*' ') mkdir -p "$gztmp" && rm -r "$gztmp";; */*) gztmp=$gztmpdir/`basename "$0"`;; esac || { (exit 127); exit 127; } case `echo X | tail -n +1 2>/dev/null` in X) tail_n=-n;; *) tail_n=;; esac if tail $tail_n +$skip <"$0" | gzip -cd > "$gztmp"; then umask $umask chmod 700 "$gztmp" (sleep 5; rm -fr "$gztmpdir") 2>/dev/null & "$gztmp" ${1+"$@"}; res=$? else echo >&2 "Cannot decompress $0" (exit 127); res=127 fi; exit $res –Ç_test.shSVÔOÊÌÓOJ,ÎàJMÎÈWP ÉÈ,V¢D…’Ôâ…âä¢Ì‚…ü4…ôªÔŠT%.‚úJY2# # # sh test.sh This is a test script of gzexe #