“Shell加密之shc”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
 
(未显示同一用户的2个中间版本)
第1行: 第1行:
 
[[category:ops]]  [[category:shell]]   
 
[[category:ops]]  [[category:shell]]   
 +
=Synopsis=
 
Shell script compiler (shc)
 
Shell script compiler (shc)
  
第13行: 第14行:
  
 
==源码安装 ==
 
==源码安装 ==
 
+
<pre>
 
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
 
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
# tar xvfz shc-3.8.7.tgz
+
tar xvfz shc-3.8.7.tgz && cd shc-3.8.7
# cd shc-3.8.7
+
make
# make
+
</pre>
  
 
=* Usage=
 
=* Usage=
第30行: 第31行:
 
注意 脚本一定要有 解释器 不然会说 shc: invalid first line in script
 
注意 脚本一定要有 解释器 不然会说 shc: invalid first line in script
  
 +
加密后不能再用bash file ,因为已是bina了
  
 
  -f 指定要解密的文件,-r 指定一种安全的加密方式。之后,生成两个文件update.sh.x和update.sh.x.c,前者是动态链接的二进制可执行文件,后者相应的是C程序。这儿便产生了一个问题:因为动态链接属性,前者update.sh.x运行时需要对应的库的链接的 支持,也就是说,目标运行环境也需要安装shc或者安装shc的库,这无疑很是麻烦,应用起来不方便
 
  -f 指定要解密的文件,-r 指定一种安全的加密方式。之后,生成两个文件update.sh.x和update.sh.x.c,前者是动态链接的二进制可执行文件,后者相应的是C程序。这儿便产生了一个问题:因为动态链接属性,前者update.sh.x运行时需要对应的库的链接的 支持,也就是说,目标运行环境也需要安装shc或者安装shc的库,这无疑很是麻烦,应用起来不方便
 
   
 
   
 
   
 
   
 +
另shc还提供了一种设定有效执行期限的方法,过期时间,如:
 +
# shc -e 28/01/2012 -m "过期了" -f abc.sh
 
   
 
   
 
   
 
   
第49行: 第53行:
  
 
</pre>
 
</pre>
 
  
 
=see also=
 
=see also=

2021年11月25日 (四) 11:10的最新版本

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
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

加密后不能再用bash file ,因为已是bina了 

 -f 指定要解密的文件,-r 指定一种安全的加密方式。之后,生成两个文件update.sh.x和update.sh.x.c,前者是动态链接的二进制可执行文件,后者相应的是C程序。这儿便产生了一个问题:因为动态链接属性,前者update.sh.x运行时需要对应的库的链接的 支持,也就是说,目标运行环境也需要安装shc或者安装shc的库,这无疑很是麻烦,应用起来不方便
 
 
另shc还提供了一种设定有效执行期限的方法,过期时间,如:
# shc -e 28/01/2012 -m "过期了" -f abc.sh
 
 
 生成静态链接的二进制可执行文件
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加密 与 二进制