shell加密成可执行文件

一.gzexe

gzexe无是linux自带的功能

1.加密test.sh

会生成覆盖 test.sh(已加密的) 还有一个test.sh~(没加密的备份文件),使用的话还是正常使用 sh test.sh 或./test.sh(要有执行权限chmod u+x test.sh)

2.解密test.sh


二.shc

shc是linux的一款加密脚本的插件(官网:http://www.datsi.fi.upm.es/~frosal/sources/

1.安装

上面也可以手动下载,解压进入目录shc-3.8.7 如下:

  1.  tar vxf shc-3.8.7.tgz && cd shc-3.8.7
  2.  sudo mkdir -p /usr/local/man/man1/
  3. make test
  4. make strings
  5. sudo make install
  6. Do you want to continue? <输入y>
  7. which shc  (#看shc路径是否安装完成 /usr/local/bin/shc就完成)

2.加密

  • -f 指定要解密的文件
  • -r 指定一种安全的加密方式
  • -v 输出详细的编译日志

生成两个文件test.sh.x动态链接的二进制可执行文件和test.sh.x.cC程序文件

验证是动态链接(dynamically)用下面命令

问题因为动态链接属性,如果要运行test.sh.x必须要有shc库的支持,别人运行环境也需要安装shc或者安装shc的库,这样用起来不方便。解决办法生成静态链接的二进制文件

生成静态链接

然后可以用file test.sh.x查看下(statically)

设置脚本过期时间

  • -e 表示脚本将在2019年3月8日前失效
  • -m 信息在执行完后展示给终端用户

例子:

  • -T 允许让ltrace, strace程序追踪脚本运行

3.解密

https://github.com/yanncam/UnSHc

发表回复