歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> shell腳本加密工具

shell腳本加密工具

日期:2017/3/3 12:59:10   编辑:SHELL編程

1. 加密工具

1.1 gzexe

1.1.1 說明

gzexe是用來壓縮執行文件的程序。當您去執行被壓縮過的執行文件時,該文件會自動解壓然後繼續執行,和使用一般的執行文件相同。

1.1.2 安裝

Linux自帶,不用單獨安裝。

1.1.3 用法

gzexe filename.sh
它會把原來沒有加密的文件備份為 file.sh~ ,同時 file.sh 即被變成加密文件。

1.1.4 參數

-d 解開壓縮文件

1.2 shc

1.2.1 說明

shc是一個專業的加密shell腳本的工具,它的作用是把shell腳本轉換為一個可執行的二進制文件,這個辦法很好的解決了腳本中含有IP、密碼等不希望公開的問題。

1.2.2 安裝

方法一:編譯安裝
tar zxvf shc-3.8.tgz
cd shc-3.8
make test
make
make test
make strings
make install
方法二 :rpm包安裝
安裝包下載:http://pkgs.repoforge.org/shc/
yum install shc-3.8.6-1.el6.rf.x86_64.rpm

1.2.3 用法

shc -r -f script-name
運行後會生成兩個文件,script-name.x 和 script-name.x.c。其中script-name.x是加密後的可執行的二進制文件;用./script-name.x即可運行,script-name.x.c是生成 script-name.x的原文件(c語言)。

1.2.4 參數

-e date
Expiration date in dd/mm/yyyyformat [none](指定過期日期)
-m message
Message to display uponexpiration ["Please contact your provider"](指定過期提示的信息)
-f script_name
File name of the script tocompile(指定要編譯的shell的路徑及文件名)
-r Relax security.
Make a redistributable binarywhich executes on different systems running the same operat-ing system.(可以相同操作系統的不同系統中執行)
-v Verbose compilation(編譯的詳細情況)
示例:
[root@centos54 tmp]#shc -e20/10/2010 -m "contact [email protected]" -v -r -f ./ex.sh
-e:指定過期時間為2010年10月20日
-m:過期後打印出的信息;
-v: verbose
-r: 可在相同操作系統的不同主機上執行
-f: 指定源shell

2. 安裝遇到的問題

2.1 編譯安裝的問題

[root@mysqltest shc-3.8.7]# make test
cc -Wall -O6 shc.c -o shc
*** Compiling script "match"
CFLAGS="-Wall -O6 " ./shc -v -f match
shc shll=sh
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc -Wall -O6 match.x.c -o match.x
shc: strip match.x
shc: chmod go-r match.x
*** Running a compiled test script!
*** It must show files with substring "sh" in your PATH...
./match.x sh
到./match.x sh後卡住不動,該問題為環境問題, 可以換個干淨的系統測試。

2.2 yum安裝後shc加密的問題

仍然是上個環境問題,yum安裝後加密,遇到提示:
[root@mysqltest wangpan]# shc-r -f echo.sh
echo.sh.x.c: In function'chkenv':
echo.sh.x.c:212: warning: castfrom pointer to integer of different size
如果直接運行./echo.sh.x,則會提示:
[root@mysqltest wangpan]# ./echo.sh.x
[1]+ Stopped ./echo.sh.x
該問題仍然是環境問題導致的,還是要換個干淨系統。

2.3 間接解決方法

找一個環境沒有問題的系統加密後拷貝到正式系統運行。

2.4 在以上問題中如果您有更好的解決方法,請回復我,共同學習,謝謝!

Copyright © Linux教程網 All Rights Reserved