由于脚本中须要明文显示密码的需求,想法是将已经编辑好的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.sh
ide
运 行后会生成两个文件,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