shc脚本编译工具

如果你的shell脚本包含了敏感的口令或者其它重要信息, 而且你不希望用户通过ps -ef(查看系统每个进程的状态)捕获敏感信息.
你可以使用shc工具来给shell脚本增加一层额外的安全保护. shc是一个脚本编译工具, 使用RC4加密算法,
它能够把shell程序转换成二进制可执行文件(支持静态链接和动态链接).
该工具能够很好的支持: 需要加密, 解密, 或者通过命令参数传递口令的环境.

shc下载链接
http://www.datsi.fi.upm.es/%7Efrosal/sources/

shc-3.8.7.tgz   shc-3.8.7.tgz(缺一个shc.c)

shc-3.8.7.tgz 按照Makefile 会报错
***    Running a compiled test script!
***    It must fail showing "./match.x: has expired!"
./match.x
./match.x: has expired!
Please contact your provider

原因是由于它设置来过期时间
直接跳过
make  (shc必须在绝对路径下使用)
make install (直接shc)

注:根据它的Makefile 创建man1目录来存放shc.1  mkdir -p /usr/local/man/man1/

shc
-e:指定过期时间为2010年10月20日
-m:过期后打印出的信息;
-v: verbose
-r: 可在相同操作系统的不同主机上执行
-f: 指定源she

1). 加密脚本.
vim hello.sh
   echo "Hello world"

# shc -r -v -f hello.sh
-v: 是verbose模式,输出更详细编译日志. -f: 指定脚本的名称.

上面命令在屏幕上的输出:
shc shll=sh
shc [-i]=-c
shc [-x]=exec ‘%s’ “$@”
shc [-l]=
shc opts=
shc: cc hello.sh.x.c -o hello.sh.x
shc: strip hello.x
shc: chmod go-r hello.sh.x

我们可以看到生成了动态链接可执行二进制文件hello.sh.x和C源文件hello.x.c, 注意生成的二进制文件因为是动态链接形式, 所以在其它平台上不能运行:

#file hello.sh.x
hello.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, stripped

2). 生成静态链接的二进制可执行文件.

不过, 我们可以通过下面的方法生成一个静态链接的二进制可执行文件:

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

shc -e 03/31/2007 -m “the mysql backup script is now out of date.” -f mysql_back.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值