Shc可以用來對shell腳本進行加密,可以將shell腳本轉換為一個可執(zhí)行的二進制文件。經過shc對shell腳本進行加密后,會同時生成兩種個新的文件,一個是加密后的可執(zhí)行的二進制文件(文件名以.x結束),另一個是C語言的原文件(文件名以.x.c結束)。
下面就說明一下shc的安裝,參數,以及使用示例:
下載安裝:
(官網下載地址: http://www.datsi.fi.upm.es/~frosal/sources/)
代碼如下:
# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
# cd shc-3.8.7
# make
# make install
(僅用make就可以完成安裝,運行shc時要指出絕對路徑;用make install,將shc安裝到/usr/local/bin下,可以直接運行)
常用參數:
代碼如下:
-e date
Expiration date in dd/mm/yyyy format [none](指定過期日期)
-m message
message to display upon expiration ["Please contact your provider"](指定過期提示的信息)
-f script_name
File name of the script to compile(指定要編譯的shell的路徑及文件名)
-r Relax security.
Make a redistributable binary which executes on different systems running the same operat-ing system.(可以相同操作系統(tǒng)的不同系統(tǒng)中執(zhí)行)
-v Verbose compilation(編譯的詳細情況)
使用示例:
代碼如下:
[root@centos54 tmp]# /usr/local/src/shc-3.8.7/shc -e 20/10/2010 -m "lianxi aaa@163.com" -v -r -f ./ex.sh
-e:指定過期時間為2010年10月20日
-m:過期后打印出的信息;
-v: verbose
-r: 可在相同操作系統(tǒng)的不同主機上執(zhí)行
-f: 指定源shell
方法:
代碼如下:
shc -r -f script-name
注意:要有-r選項, -f 后跟要加密的腳本名.
運行后會生成兩個文件,script-name.x 和 script-name.x.c
script-name.x是加密后的可執(zhí)行的二進制文件.
./script-name.x 即可運行.
script-name.x.c是生成script-name.x的原文件(c語言)
說明:
經我測試,相同在操作系統(tǒng),shc后的可執(zhí)行二進制文件直接可以移植運行,但不同操作系統(tǒng)可能會出現問題,如我將源shell在CentOS5.4上加密后移到redhat as5u4上不能運行,出現“Floating point exception”錯誤提示,但移到另一臺CentOS5.4上直接運行沒問題。
新聞熱點
疑難解答