按关键词阅读:
概述以我个人的需求为例 , 有时写一个脚本需要传密码 , 如果直接把密码写在脚本里会存在安全问题 , 一般是把密码写在脚本里 , 作为参数传给脚本 , 而保存密码的脚本 , 使用某种手段加密 , 令其不可读但是可执行 。 而常用的shell加密方法有两种 , 一种是通过gzexe加密 , 另一种是通过shc加密 。
一、gzexe1、概念
Linux gzexe命令用于压缩执行文件 。
gzexe是用来压缩执行文件的程序 。 当执行被压缩过的执行文件时 , 该文件会自动解压然后继续执行 , 和使用一般的执行文件相同 。
gzexe加密很简单 , 并且gzexe是系统自带 , 所以不需要安装任何东西 , 只要在SSH中输入gzexe 加密的脚本 。
2、gzexe加密
【详解shell脚本加密解密软件—gzese和shc】 gzexe 脚本名
其中hwb.sh~ 是原文件,hwb.sh 是压缩后的二进制文件
文章插图
3、gzexe解密
gzexe但是通过gzexe加密的shell脚本并不是很安全 , 观察脚本可以看到内容中有一行叫skip=44 , 这一行非常重要 , 它告诉我们从第44行起才是原来压缩之前文件的内容 , 前面都是压缩软件附加上去的内容 。 虽然从44行往后面也全部都是乱码 , 我们也读不懂这些内容 , 但是gzip程序会告诉我们的 。
首先我们把第44行以后的内容过滤出来生成一个.gz结尾文件 , 然后解压 , 文件内容就都出来了 。
tail -n +44 hwb.sh > hwb.gz# 我们把第44行以后的文件写成一个.gz结尾的压缩文件gunzip hwb.gz# 解压生成的文件cat hwb# 解压后的文件和压缩文件同名--第二种方式gzexe -d hwb.sh
文章插图
二、shc1、安装shc
SHC官网地址:~frosal/sources/
--推荐编译指定版本wget %7Efrosal/sources/shc-3.8.9.tgztar vxf shc-3.8.9.tgzcd shc-3.8.9make testmake stringsmkdir -p /usr/local/man/man1/make install
文章插图
2、shc加密
shc -r -f 脚本名
--运行后会生成两个文件,script-name.x 和 script-name.x.c
script-name.x是加密后的可执行的二进制文件 , 可重命名后运行.
script-name.x.c是生成script-name.x的原文件(c语言) , 基本没有作用 , 可以删除 。
注意:如果脚本只需要在当前服务器上执行 , 可以不加参数-r , 如果需要在别的系统下也能执行 , 这里就需要加-r
3、shc解密
项目地址:
git clone .git./UnSHc/latest/unshc.sh 脚本名
文章插图
4、实例
4.1、加密
shc -r -f log_clean.sh
文章插图
4.2、测试加密效果
可以发现已完成加密
文章插图
4.3、解密
将unshc.sh文件和需要解密的shell脚本放在同一目录 , 然后终端在当前目录运行./unshc.sh shell文件名 , 如果可以解密的话就可以了
/home/scripts/UnSHc/latest/unshc.shlog_clean.sh.x
文章插图
后面会分享更多devops和DBA方面内容 , 感兴趣的朋友可以关注下!
文章插图
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111J300S2020.html
标题:详解shell脚本加密解密软件—gzese和shc