shell腳本轉化爲二進制執行文件的兩種方法

由於腳本中須要明文顯示密碼的需求,想法是將已經編輯好的shell腳本,封裝成二進制可執行文件。
要點:該工具不支持生成的二進制文件在其餘主機上使用。git

使用工具shc
官方下載網站:http://www.datsi.fi.upm.es/~frosal/
使用最新版本:shc-3.8.9b.tgzgithub

tar -zxvf shc-3.8.9b.tgz
cd shc-3.8.9b/
make

編譯成功後
當前目錄下增長一個可執行文件shcshell

cp shc /usr/local/bin/

使用命令
shc -r -f xxx.shide

運 行後會生成兩個文件,xxx.sh.x 和 xxx.sh.x.c. 其中xxx.sh.x是加密後的可執行的二進制文件;用./xxx.sh.x便可運行,xxx.sh.x.c是生成 xxx.sh.x的原文件(c語言).
shc -v -r -T -f工具

另外還有個-T選項,加了T選項後,在Mac上雙擊運行居然能夠看到腳本里面的內容。
-T Allow binary to be traceable (using strace, ptrace, truss, etc.)網站

/usr/local/src/shc-3.8.7/shc -e 27/03/2018 -m "contact xxx@163.com" -v -r -f ./xxx.sh加密

-e:指定過時時間爲2018年03月20日
-m:過時後打印出的信息;
-v: verbose
-r: 可在相同操做系統的不一樣主機上執行
-f: 指定源shell操作系統

在rhel6上使用請注意
實測 shc -r -f 二進制封裝腳本,可是沒法使用cron正常執行,換用可trace的方式進行進行封裝,shc -T -f ,cron正常執行。code

制定任務計劃
08 08 * /path/xxx.sh.x
聽說shc的decrypt是下面這個腳本,可是我實測只能生成亂碼。get

https://github.com/yanncam/UnSHc

第二種爲gzexe
gzexe命令便可隱藏shell源碼
gzexe xxx.sh
生成加密後的腳本xxx.sh和shell源碼xxx.sh~

缺點:gzexe能夠直接轉換明文。gzexe -d xxx.sh