shell 跳过当前错误继续执行_详解shell脚本加密解密软件—gzese和shc

概述

以我个人的需求为例,有时写一个脚本需要传密码,如果直接把密码写在脚本里会存在安全问题,一般是把密码写在脚本里,作为参数传给脚本,而保存密码的脚本,使用某种手段加密,令其不可读但是可执行。而常用的shell加密方法有两种,一种是通过gzexe加密,另一种是通过shc加密。


一、gzexe

1、概念

Linux gzexe命令用于压缩执行文件。

gzexe是用来压缩执行文件的程序。当执行被压缩过的执行文件时,该文件会自动解压然后继续执行,和使用一般的执行文件相同。

gzexe加密很简单,并且gzexe是系统自带,所以不需要安装任何东西,只要在SSH中输入gzexe 加密的脚本。

2、gzexe加密

 gzexe 脚本名

其中hwb.sh~ 是原文件 , hwb.sh 是压缩后的二进制文件

1740b166b8e13ca4a9aba712df0eec0d.png

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
4f0aa528bc1e6882634c49f33b71e07a.png

二、shc

1、安装shc

SHC官网地址:http://www.datsi.fi.upm.es/~frosal/sources/

--推荐编译指定版本wget http://www.datsi.fi.upm.es/%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
90c3ef592c6f546ae12a3cc91f3c3821.png

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

项目地址:https://github.com/yanncam/UnSHc

git clone https://github.com/yanncam/UnSHc.git./UnSHc/latest/unshc.sh 脚本名
f508313b0647baeac9acd04896f79ce8.png

4、实例

4.1、加密

 shc -r -f log_clean.sh
21115a2a110994dcf5bbb5345bfc68aa.png

4.2、测试加密效果

可以发现已完成加密

952f925d9f7a42cc102dd44e5fd6f30d.png

4.3、解密

将unshc.sh文件和需要解密的shell脚本放在同一目录,然后终端在当前目录运行./unshc.sh shell文件名,如果可以解密的话就可以了

 /home/scripts/UnSHc/latest/unshc.sh  log_clean.sh.x
47ba72ab4ea84a256b28efc17f784b4f.png

后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!

90d0b7e090c462ffa470363100406555.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值