Shell加密之shc

来自linux中国网wiki
Evan讨论 | 贡献2020年11月3日 (二) 09:12的版本
跳到导航 跳到搜索

Synopsis

Shell script compiler (shc)

* install

homepage

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

  1. tar xvfz shc-3.8.7.tgz
  2. cd shc-3.8.7
  3. 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!
过期了 


see also

Shell脚本加密工具——Shc

对shell脚本进行加密

使用shc加密shell脚本

如何对shell脚本进行加密且不影响脚本运行

shell加密 与 二进制