“Shell加密之shc”的版本间的差异
跳到导航
跳到搜索
第1行: | 第1行: | ||
[[category:ops]] [[category:shell]] | [[category:ops]] [[category:shell]] | ||
+ | =Synopsis= | ||
Shell script compiler (shc) | Shell script compiler (shc) | ||
2020年11月3日 (二) 09:12的版本
Synopsis
Shell script compiler (shc)
* install
https://github.com/neurobin/shc
apt install shc
yum -y install shc
源码安装
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
- tar xvfz shc-3.8.7.tgz
- cd shc-3.8.7
- make
* Usage
evan@myxps:~/tmp/shc$ cat a.sh #!/bin/bash ls /tmp shc -r -f a.sh 注意 脚本一定要有 解释器 不然会说 shc: invalid first line in script -f 指定要解密的文件,-r 指定一种安全的加密方式。之后,生成两个文件update.sh.x和update.sh.x.c,前者是动态链接的二进制可执行文件,后者相应的是C程序。这儿便产生了一个问题:因为动态链接属性,前者update.sh.x运行时需要对应的库的链接的 支持,也就是说,目标运行环境也需要安装shc或者安装shc的库,这无疑很是麻烦,应用起来不方便 生成静态链接的二进制可执行文件 CFLAGs=-static shc -r -f a.sh 另shc还提供了一种设定有效执行期限的方法,过期时间,如: # shc -e 28/01/2012 -m "过期了" -f abc.sh 选项“-e”指定过期时间,格式为“日/月/年”;选项“-m”指定过期后执行此shell程序的提示信息。 如果在过期后执行,则会有如下提示: # ./abc.sh.x ./abc.sh.x: has expired! 过期了