**:
採用shc工具加密shell指令碼,以提高shell指令碼檔案的安全性。
介紹:當我們寫的shell指令碼,存在有敏感資訊如賬號密碼,於是想加強指令碼的安全性;還有不想讓別人檢視/修改您的shell核心**等等情況。都可使用以下工具進行加密。
shc是乙個指令碼編譯工具, 使用rc4加密演算法, 它能夠把shell程式轉換成二進位制可執行檔案(支援靜態鏈結和動態鏈結)。
shc官網:
安裝shc
wget sources/shc-3.8.7.tgz
tar vxf shc-3.8.7.tgz
cd shc-3.8.7
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/
install: target `/usr/local/man/man1/' is not a directory: no such file or directory
make: *** [install] error 1
請建立 mkdir -p /usr/local/man/man1/ ,然後執行make install
常用引數:
-e date (指定過期日期)
-m message (指定過期提示的資訊)
-f script_name(指定要編譯的shell的路徑及檔名)
-r relax security. (可以相同作業系統的不同系統中執行)
-v verbose compilation(編譯的詳細情況)
使用方法:
shc -v -f abc.sh
-v 是現實加密過程
-f 後面跟需要加密的檔案
執行後會生成兩個檔案:
abc.sh.x 和 abc.sh.x.c
abc.sh.x為二進位制檔案,賦予執行許可權後,可直接執行。更改名字mv abc.sh.x a.sh
abc.sh.x.c 是c原始檔。基本沒用,可以刪除
另shc還提供了一種設定有效執行期限的方法,過期時間,如:
# shc -e 28/01/2012 -m "過期了" -f abc.sh
選項「-e」指定過期時間,格式為「日/月/年」;選項「-m」指定過期後執行此shell程式的提示資訊。
# ./abc.sh.x
./abc.sh.x: has expired!
過期了
1). 加密指令碼.
# shc -v -r -f mysql_backup.sh
-v: 是verbose模式,輸出更詳細編譯日誌. -f: 指定指令碼的名稱.
上面命令在螢幕上的輸出:
shc shll=sh
shc [-i]=-c
shc [-x]=exec 『%s』 「$@」
shc [-l]=
shc opts=
shc: cc mysql_backup.sh.x.c -o mysql_backup.sh.x
shc: strip mysql_backup.sh.x
shc: chmod go-r mysql_backup.sh.x
我們可以看到生成了動態鏈結可執行二進位制檔案mysql_back.sh.x和c原始檔mysql_backup.sh.x.c, 注意生成的二進位制檔案因為是動態鏈結形式, 所以在其它平台上不能執行:
mysql_backup.sh.x: elf 32-bit lsb executable, intel 80386, version 1 (sysv),
dynamically linked (uses shared libs), for gnu/linux 2.6.9, stripped
2). 生成靜態鏈結的二進位制可執行檔案.
不過, 我們可以通過下面的方法生成乙個靜態鏈結的二進位制可執行檔案:
# cflags=-static shc -r -f mysql_backup.sh
# file mysql_backup.sh.x
mysql_backup.sh.x: elf 32-bit lsb executable, intel 80386, version 1 (sysv),
statically linked, for gnu/linux 2.6.9, stripped
一般來說是安全的, 不過可以使用gdb和其它的除錯工具獲得最初的源**. 如果你需要更加安全的方法, 可以考慮使用
wzshsdk.
另外, sch還可以設定指令碼的執行期限和自定義返回資訊:
shc -e 03/31/2007 -m 「the mysql backup script is now out of date.」 -f mysql_back.sh
-e表示指令碼將在2023年3月31日前失效, 並根據-m定義的資訊返回給終端使用者.
使用該工具有時會遇到生成的指令碼無法執行的情況,提示「operation not permitted」。這時需要對生成的*.c檔案進行修改,再重新編譯。比如有test.sh指令碼需要加密:
1、./shc -v -r -f test.sh,生成test.x、test.x.c檔案
2、修改test.x.c檔案,刪除圖中所示部分。
3、gcc -o test.x test.x.c 重新編譯生成test.x檔案。
shc加密shell指令碼
1.加壓shc 3.8.9b.tgz tar xzvf shc 3.8.9b.tgz cd shc 3.8.9b 2.建立幫助文件目錄 mkdir p usr local man man1 3.安裝 make install 4.安裝完,加密test.sh shc r t f test.sh 如果要...
Shell 指令碼加密工具 shc
為什麼要加密shell指令碼呢?當然是為了安全!可能指令碼裡面涉及到密碼之類的就需要進行加密了 要保護自己編寫的shell指令碼程式,方法有很多,最簡單的方法有兩種 1 加密 2 設定過期時間,下面以shc工具為例說明 shc是乙個加密shell指令碼的工具.它的作用是把shell指令碼轉換為乙個可...
shc加密(僅僅對shell指令碼加密)
shc加密 僅僅對shell指令碼加密 shc是乙個專業的加密shell指令碼的工具.它的作用是把shell指令碼轉換為乙個可執行的二進位制檔案,這個辦法很好的解決了指令碼中含有ip 密碼等不希望公開的問題。如果你的shell指令碼包含了敏感的口令或者其它重要資訊,而且你不希望使用者通過ps ef ...