文章

破解Linux环境下Shell脚本加密的几种思路

    大体的说下,Linux下目前比较流行的加密方法有两种: 第一种方法: 采用gzexe加密,严格来讲,gzexe这种脚本加密方式不是加密,而是把代码进行了压缩,但是这种方式能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。它是使用Liunx系统环境下自带的gzexe程序,它不但加密,同时压缩文件。 gzexe加密linux脚本的使用方法: gzexe file.sh /它会把原来的文件备份为 file.sh~ ,同时 file.sh 即被变成加密后的可执行文件 使用gzexe加密的shell脚本代码特征为:前面一段代码是正常的命令字符,到了后面某一行开始就全部为乱码,示例如下 gzexe加密shell解密思路:跟踪代码的执行过程可以发现,脚本执行到某一步的时候会生成临时解密的shell脚本 ,整个脚本执行完之后再把临时解密shell脚本所在目录删除。有了这个发现,我们就找到了方法了。 第二种方法: 使用Linux下脚本加密工具SHC对shell脚本进行加密,SHC可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两个新的文件,一个是加密后的可执行的二进制文件(name.sh.x),另一个是C语言的原文件(name.sh.x.c)。shc加密工具的详细安装和使用教程我这里就不讲了,有兴趣的朋友自己搜一下有很多,使用也比较简单。在这里博主主要给大家分享一个SHC加密工具破解的方法,此破解工具来源于国外的大牛,详细的代码在下面,复制下面的脚本后另存为unshc.sh,然后执行脚本即可,会有提示告诉你怎么解密。 unshc.sh一键解密脚本  

教程

Shell脚本加密与解密

  我们写的shell脚本里面通常会包含帐号密码等信息或者你不想让别人看到的信息,那么把写好的shell脚本进行简单的加密显得有些必要了。 常用的shell加密方法有两种,一种是通过gzexe加密,另一种是通过shc加密。 我们先给一个简单的脚本,然后用它来进行加密解密演示,脚本abc.sh内容如下 1 2 #!/bin/bash echo "hello world!" gzexe加密与解密shell脚本  (tips:绿色为输出内容) 1 2 3 4 5 6 7 8 9 bash abc.sh         # 执行后显示内容 hello world! gzexe abc.sh         # 压缩 abc.sh:  18.8% ls -l                # 压缩完成后, abc.sh~ 是原文件 , abc.sh 是压缩后的二进制文件 abc.sh   abc.sh~ mv abc.sh abc sh abc             # 压缩后再执行正常 hello world! 我们只需要把abc这个二进制文件传到机器上执行就可以了,并不需要关心它的源码,别人也不能通过这个文件看到shell代码,我们cat显示一下这个文件发现内容全部乱码,如图(乱码内容未全部截图出来)。 但是通过gzexe加密的shell脚本并不是很安全,细看我们如何通过abc这个乱码的执行文件还原成原来的shell脚本。 但是通过gzexe加密的shell脚本并不是很安全,细看我们如何通过abc这个乱码的执行文件还原成原来的shell脚本。 我们看到内容中有一行叫skip=44,这一行非常重要,它告诉我们从第44行起才是原来压缩之前文件的内容,前面都是压缩软件附加上去的内容。虽然从44行往后面也全部都是乱码,我们也读不懂这些内容,但是gzip程序会告诉我们的。 首先我们把第44行以后的内容过滤出来生成一个.gz结尾文件,然后解压,文件内容就都出来了。  (tips:绿色为输出内容) 1 2 3 4 5 6 tail -n +44 abc > /tmp/a.gz       # 我们把第44行以后的文件写成一个.gz结尾的压缩文件 cd /tmp gunzip a.gz            # 解压生成的文件 cat a                  # 解压后的文件和压缩文件同名 #!/bin/bash echo "hello world!" 我们看到解压之后,文件里面的内容和原来压缩之前是一样的,成功完成解密。 shc加密shell脚本 shc是比gzexe安全的多的加密软件,不过网络说通过gdb调试也是可以显示内容的,不过我没有尝试,网上也没啥资料。 shc官方网站:http://www.datsi.fi.upm.es/~frosal/sources/ shc安装过程 1 2 3 4 5 wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz tar zxvf shc-3.8.9.tgz cd shc-3.8.9 mkdir -p /usr/local/man/man1/       # 这个是必须的,帮助文件会写到这里,没这个目录会报错 make install 安装完成后,我们再创建个文件做测试,文件123.sh内容如下 1 2…