shc将shell脚本转成二进制文件

2 篇文章 0 订阅
1 篇文章 0 订阅

最近在做一个项目,需要把shell脚本自定拷贝到目标客户端中执行,但是并不想让用户知道脚本的源码,于是采用shc对shell脚本进行处理

首先装个wget工具

yum -y install  wget

下载

wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz

解压到当前文件夹

tar zxf shc-3.8.7.tgz -C ./

解压后看到有如下文件
在这里插入图片描述
到shc的目录下

cd shc-3.8.7

使用make 或者make install安装
(仅用make就可以完成安装,运行shc时要指出绝对路径;用make install,将shc安装到/usr/local/bin下,可以直接运行)

make

在这里插入图片描述
这里看到make install执行失败了,但是make成功了,可以正常使用了

shc -r -f  /脚本目录/脚本名称

参数说明:

  • -e:指定过期时间为2010年10月20日
  • -m:过期后打印出的信息;
  • -v: verbose shc执行时打印信息
  • -r: 可在相同操作系统的不同主机上执行
  • -f: 指定源shell
    在这里插入图片描述
    如上图,执行后看到生成两个文件aa.x 和 aa.x.c
    aa.sh是源shell文件
    aa.x是加密后的可执行的二进制文件.
    ./aa.x 即可运行.
    aa.x.c是生成script-name.x的原文件(c语言)

aa.x也可以拷到别的地方改名字,如再改成aa.sh 直接 ./aa.sh即可执行

注意,shc加密之后的脚本使用ps -ef|grep aa.sh 是看不到的。

看到网上解释说
shc工具来给shell脚本增加一层额外的安全保护. shc是一个脚本编译工具, 使用RC4加密算法,
它能够把shell程序转换成二进制可执行文件(支持静态链接和动态链接).
该工具能够很好的支持: 需要加密, 解密, 或者通过命令参数传递口令的环境.

这里就有个坑点,本来我打算用去检查脚本是否运行完成的

ps -ef|grep /root/test/aa.sh | grep -v grep

加密后不可行就只能改成根据shell脚本生成的log内容判断了

如果你有更好的办法,请留言,蟹蟹,一起学习一起进步~~~~~~

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值