一、说明
很多人写了一些shell脚本,想给其他人用但是又不想公开源代码,所以就要对shell脚本进行加密处理,那么我们可以Shell 脚本编译器工具 (SHC) ,使用 shc 将 bash/shell 脚本编译为二进制文件,隐藏源代码并防止被被人修改的功能。由于在大多数操作系统上默认是不安装的, 因此需要手动安装。
shc的工作过程分为两步:
-
将shell脚本转化为C语言源码
-
将C语言源码进行编译链接得到二进制文件
二、安装
2.1 安装服务
[root@localhost wangzy]# yum -y install shc
2.2 书写测试脚本
书写一个 “hello world” 测试脚本
[root@localhost wangzy]# ls [root@localhost wangzy]# vi wangzy.sh [root@localhost wangzy]# cat wangzy.sh #!/bin/bash echo "hello world"
2.3 编译
# 方式一:直接编译 [root@localhost wangzy]# shc -f wangzy.sh [root@localhost wangzy]# ls wangzy.sh wangzy.sh.x wangzy.sh.x.c #方式二:加参数 [root@localhost wangzy]# shc -r -v -f wangzy.sh [root@localhost wangzy]# ls wangzy.sh wangzy.sh.x wangzy.sh.x.c #说明:shc运行后会生成两个文件: xxxx.sh.x 和 xxxx.sh.x.c xxxx.sh.x 二进制文件,重命名后用 chmod +x xxxx.sh 赋予权限后可执行。默认自带执行权限 xxxx.sh.x.c 则是 C 编译后的C语言文件,无用,可以删除
如果打包不成功的话,shc -h最下面有environment环境要求,要在保证满足。
2.4 重命名二进制文件
[root@localhost wangzy]# ls wangzy.sh wangzy.sh.x wangzy.sh.x.c [root@localhost wangzy]# rm -rf wangzy.sh.x.c [root@localhost wangzy]# mv wangzy.sh.x wangzy #说明:shc运行后会生成两个文件: xxxx.sh.x 和 xxxx.sh.x.c xxxx.sh.x 二进制文件,重命名后用 chmod +x xxxx.sh 赋予权限后可执行 xxxx.sh.x.c 则是 C 编译后的C语言文件,无用,可以删除
2.5 测试
# 运行二进制文件 [root@localhost wangzy]# ./wangzy hello world # cat发现文件已经无法查看 [root@localhost wangzy]# # 删除原始脚本 [root@localhost wangzy]# rm -rf wangzy.sh
附加:
shc反编译,待后续
标签:shell,xxxx,二进制,编译成,sh,wangzy,root,localhost,shc From: https://www.cnblogs.com/wangzy-Zj/p/17329627.html