如何保護本身編寫的shell程序

要保護本身編寫的shell腳本程序,方法有不少,最簡單的方法有兩種:一、加密 二、設定過時時間,下面以shc工具爲例說明:
mysql

1、下載安裝shc工具sql

shc是一個加密shell腳本的工具.它的做用是把shell腳本轉換爲一個可執行的二進制文件.shell

下載 shc-3.8.7.gz安全

# tar zxvf shc-3.8.7.gz
# cd shc-3.8.7
# make test
# make
# make test
# make strings
# make install   #root權限


2、加密方法:oracle

shc -r -f script-name   注意:要有-r選項, -f 後跟要加密的腳本名.工具

運行後會生成兩個文件,script-name.x 和 script-name.x.c加密

script-name.x是加密後的可執行的二進制文件.spa

./script-name 便可運行.調試

script-name.x.c是生成script-name.x的原文件(c語言)日誌


# shc -v -f test.sh
-v是verbose模式, 輸出更詳細編譯日誌;
-f 指定腳本的名稱.

# ll test*
-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: 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, 注意生成的二進制文件由於是動態連接形式, 因此在其它平臺上不能運行.生成靜態連接的二進制可執行文件,能夠經過下面的方法生成一個靜態連接的二進制可執行文件:

# CFLAGS=-static shc -r -f test.sh
# file testup.sh.x


三. 經過sch加密後的腳本文件很安全嗎?

通常來講是安全的, 不過可使用gdb和其它的調試工具得到最初的源代碼. 若是須要更加安全的方法, 能夠考慮使用wzshSDK.另外shc還能夠設置腳本的運行期限和自定義返回信息:

$ shc -e 03/31/2007 -m "the mysql backup scrīpt is now out of date." -f test.sh

-e表示腳本將在2007年3月31日前失效, 並根據-m定義的信息返回給終端用戶.


例外

若是你僅僅是看不見內容就好了的話,不妨用

gzexe a.sh

原來的 a.sh 就被存爲 a.sh~,新的 a.sh 是亂碼,可是能夠用 sh 的方式運行。

相關文章
相關標籤/搜索