標籤:
shell加密工具shc的安裝和使用
1)工具說明
shell指令碼是可讀寫的, 很有可能會泄露敏感資訊, 如使用者名稱/密碼/路徑/IP等. 同樣在shell指令碼運行時會也泄露敏感資訊. shc是一個加密shell指令碼的工具, 它的作用是把shell指令碼轉換為一個可執行檔二進位檔案. 這就很好的解決了上述問題.
2)下載安裝
下載: http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz(非官方地址)
安裝:
# mkdir -p /home/upall/shc
# mkdir /usr/local/man/man1/ //install時會把man檔案放入該目錄,如果該目錄不存在需提前建好
# tar -zvxf shc-3.8.6.tgz -C /home/upall/shc && cd /home/upall/shcshc-3.8.6
# make test
# make strings
# make install
*** Installing shc and shc.1 on /usr/local
*** Do you want to continue? <輸入y>
install -c -s shc /usr/local/bin/
install -c -m 644 shc.1 /usr/local/man/man1/
#
用法:
# which shc //尋找程式在哪,也可以用“whereis shc”。
/usr/local/bin/shc
# shc //查看協助可以用shc -h或shc --help,不過參數錯的話,程式會自動把使用說明能你,不過不全。
shc parse(-f): No source file specified
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script
3) 加密指令碼
# shc -v -f test.sh //“加密”檔案“test.sh”。
-v是verbose模式, 輸出更詳細編譯日誌;
-f 指定指令碼的名稱.
$ ll test* //查看檔案詳細資料,這個命令的原型是“ls -l”。
-rwxr-xr-x 1 oracle oinstall 1178 Aug 18 10:00 test.sh
-rwx--x--x 1 oracle oinstall 8984 Aug 18 18:01 test.sh.x
-rw-r--r-- 1 oracle oinstall 14820 Aug 18 18:01 test.sh.x.c
$ file test.sh.x //查看檔案“test.sh.x”的檔案類型
test.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked(uses shared libs), stripped
可以看到產生了動態連結可執行二進位檔案test.sh.x和C源檔案testup.sh.x.c, 注意產生的二進位檔案因為是動態連結形式, 所以在其它平台上不能運行.
4) 產生靜態連結的二進位可執行檔
可以通過下面的方法產生一個靜態連結的二進位可執行檔:
$ CFLAGS=-static shc -r -f test.sh
$ file testup.sh.x
5) 通過sch加密後的指令檔很安全嗎?
一般來說是安全的, 不過可以使用gdb和其它的調試工具獲得最初的原始碼. 如果需要更加安全的方法, 可以考慮使用wzshSDK. 另外shc還可以設定指令碼的運行期限和自訂返回資訊:
$ shc -e 09/05/2010 -m "the mysql backup scrīpt is now out of date." -f test.sh
-e表示指令碼將在2010年9月5日前失效, 並根據-m定義的資訊返回給終端使用者.
說明:關於MySQL可以參考我的“MySQL管理”中的備份操作或者“Crontab”文末的備份指令碼例子。
補充:Win下轉為二進位並且可以在命令列下執行的工具名為“bat2exe”。
<完>
shell加密工具shc的安裝和使用