一、系统自带gzexe

 

gzexe无需安装任何软件,是linux自带的功能,只需要执行命令即可,我们可以利用wget将文件放在root目录下,也可以通过sftp放在root目录,也可以直接利用cd命令选择任意目录

加密方法

假如说我们当前目录root下有个脚本名为test.sh
执行如下命令进行加密

 

gzexe test.sh

 

此时在目录下就会产生一个test.sh~文件,该文件为源文件,test.sh是加密后的文件,如图:

Linux shell脚本加密解密方法插图

 

解密方法

假如脚本名字为test.sh
执行如下命令进行解密

gzexe -d test.sh

同上,在目录下就会产生一个test.sh~文件,该文件是原文件,test.sh是加密后的文件。

如图:

Linux shell脚本加密解密方法插图1

以上方法是linux系统,如果你是win系统,可尝试用7z解压软件进行加解密,详情可参视频:

shell脚本怎么解密

二、shc加密软件

shc是linux的一款加密脚本的插件,东西比较安全,shc官网:http://www.datsi.fi.upm.es/%7Efrosal/

安装方法

执行如下脚本安装shc

 

wget https://www.datsi.fi.upm.es/%7Efrosal/sources/shc-3.8.9.tgz

tar vxf shc-3.8.9.tgz

cd shc-3.8.9

mkdir -p /usr/local/man/man1

make install

 

如果不执行mkdir -p /usr/local/man/man1将会报如下错误

*** Installing shc and shc.1 on /usr/local *** ?Do you want to continue? y install -c -s shc /usr/local/bin/ install -c -m 644 shc.1 /usr/local/man/man1/ install: target `/usr/local/man/man1/’ is not a directory: No such file or directory make: *** [install] Error 1

 

shc常用参数:

-e date (指定过期日期)

-m message (指定过期提示的信息)

-f script_name(指定要编译的shell的路径及文件名)

-r Relax security. (可以相同操作系统的不同系统中执行)

-v Verbose compilation(编译的详细情况)

加密方法

假如说我们这个脚本名字叫test.sh

那我们就执行如下命令进行加密

shc -v -f test.sh
-v 是现实加密过程

-f 后面跟需要加密的文件

abc.sh.x为加密后的二进制文件,赋予执行权限后,可直接执行。更改名字mv vpsps.sh.x vpspscom.sh

abc.sh.x.c 是c源文件。基本没用,可以删除

过期加密法

另shc还提供了一种设定有效执行期限的方法,过期时间,如:

# shc -e 14/09/2016 -m -f test.sh
选项“-e”指定过期时间,格式为“日/月/年”;选项“-m”指定过期后执行此Shell程序的提示信息。

如果在过期后执行,则会有如下提示:

# ./abc.sh.x

./abc.sh.x: has expired!(文件已经过期)

使用以上方法要注意,需防止用户更改系统时间,可以通过在程序中加入自动更新系统时间的命令来解决此问题。测试都已通过!

解密方法

利用unshc来解密
网址:https://github.com/yanncam/UnSHc/

unshc使用方法

将unshc wget或者上传到任意目录
然后可执行如下命令查看帮助

./unshc.sh -h
执行下面的命令进行解密(此过程可能耗时有点长,需耐心等待)

./unshc.sh script.sh.x -o script_decrypted.sh
script.sh.x文件为经过加密的二进制文件 script_decrypted.sh文件为解密后shell脚本

github.com/yanncam/UnSHc/blob/master/release/0.8/unshc-v0.8.sh