第一种方法(gzexe):
这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。它是使用系统自带的gzexe程序,它不但加密,同时压缩文件。
使用方法:
加密:
gzexe test.sh
它会把原来没有加密的文件备份为 test.sh~ ,同时 test.sh 即被变成加密文件;
解密:
gzexe -d test.sh
第二种方法(shc):
shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法很好的解决了脚本中含有IP、密码等不希望公开的问题.
shc的官网下载地址:
http://www.datsi.fi.upm.es/~frosal/sources/
安装方法:
wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz
tar zxf shc-3.8.9.tgz
cd shc-3.8.9
mkdir -p /usr/local/man/man1
make install
这是要回答yes或者y,不能直接回车,否则会报错
发现报错的情况比较严重,如果报错内容如下:
*** 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
请创建 mkdir -p /usr/local/man/man1/
也可以直接无视,一般没什么影响,只是少了对应的帮助文档。
常用参数:
-e date (指定过期日期)
-m message (指定过期提示的信息)
-f script_name(指定要编译的shell的路径及文件名)
-r
-v
加密:
shc -v -f test.sh
-v 是现实加密过程
-f 后面跟需要加密的文件
运行后会生成两个文件,test.sh.x 和 test.sh.x.c.
test.sh.x为二进制文件,赋予执行权限后,可直接执行。更改名字mv test.sh.x test.sh
test.sh.x.c 是c源文件。基本没用,可以删除
过期加密法:
另shc还提供了一种设定有效执行期限的方法,过期时间,如:
# shc -e 18/10/2018 -m " It's too late to run this script " -f test.sh
选项“-e”指定过期时间,格式为“日/月/年”;选项“-m”指定过期后执行此shell程序的提示信息。
如果在过期后执行,则会有如下提示:
# ./abc.sh.x
./abc.sh.x: has expired!(文件已经过期)
使用以上方法要注意,需防止用户更改系统时间,可以通过在程序中加入自动更新系统时间的命令来解决此问题。
测试都已通过,请放心使用!
解密:
git地址:https://github.com/yanncam/UnSHc
将unshc wget或者上传到任意目录
wget down.osuu.net/File_sh/unshc.sh
然后可执行如下命令查看帮助
./unshc.sh -h
执行下面的命令进行解密(此过程可能耗时有点长,需耐心等待)
chmod +x unshc.sh ./unshc.sh test.sh.x -o test_decrypted.sh
test.sh.x文件为经过加密的二进制文件
test_decrypted.sh文件为解密后shell脚本
暂无评论内容