shell脚本加密工具

1. 加密工具

1.1 gzexe

1.1.1 说明

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

1.1.2 安装

       Linux自带,不用单独安装。

1.1.3 用法

       gzexe filename.sh

    它会把原来没有加密的文件备份为 file.sh~ ,同时 file.sh 即被变成加密文件。

1.1.4 参数

       -d 解开压缩文件

1.2 shc

1.2.1 说明

       shc是一个专业的加密shell脚本的工具,它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法很好的解决了脚本中含有IP、密码等不希望公开的问题。

1.2.2 安装

       方法一:编译安装         

              tar zxvf shc-3.8.tgz

              cd shc-3.8

              make test

              make

              make test

              make strings

              make install

       方法二  rpm包安装

            安装包下载:http://pkgs.repoforge.org/shc/

       yum install shc-3.8.6-1.el6.rf.x86_64.rpm

1.2.3 用法

       shc -r -f script-name  

       运行后会生成两个文件,script-name.x script-name.x.c。其中script-name.x是加密后的可执行的二进制文件;用./script-name.x即可运行,script-name.x.c是生成 script-name.x的原文件(c语言)

1.2.4 参数

-e date

Expiration date in dd/mm/yyyyformat [none](指定过期日期)

-m message

Message to display uponexpiration ["Please contact your provider"](指定过期提示的信息)

-f script_name

File name of the script tocompile(指定要编译的shell的路径及文件名)

-r Relax security.

Make a redistributable binarywhich executes on different systems running the same operat-ing system.(可以相同操作系统的不同系统中执行)

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

示例:

[root@centos54 tmp]#shc -e20/10/2010 -m "contact [email protected]" -v -r -f ./ex.sh

-e:指定过期时间为20101020
-m:过期后打印出的信息;
-v: verbose
-r: 可在相同操作系统的不同主机上执行
-f: 指定源shell

2. 安装遇到的问题

2.1 编译安装的问题

[root@mysqltest shc-3.8.7]# make test
cc -Wall -O6  shc.c -o shc
*** Compiling script "match"
CFLAGS="-Wall -O6 " ./shc -v -f match
shc shll=sh
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc -Wall -O6  match.x.c -o match.x
shc: strip match.x
shc: chmod go-r match.x
*** Running a compiled test script!
*** It must show files with substring "sh" in your PATH...
./match.x sh

./match.x sh后卡住不动,该问题为环境问题, 可以换个干净的系统测试。

2.2 yum安装后shc加密的问题

仍然是上个环境问题,yum安装后加密,遇到提示:

[root@mysqltest wangpan]# shc-r -f echo.sh

echo.sh.x.c: In function'chkenv':

echo.sh.x.c:212: warning: castfrom pointer to integer of different size

如果直接运行./echo.sh.x,则会提示:

 [root@mysqltest wangpan]# ./echo.sh.x

 

[1]+  Stopped                 ./echo.sh.x

该问题仍然是环境问题导致的,还是要换个干净系统。

2.3 间接解决方法

       找一个环境没有问题的系统加密后拷贝到正式系统运行。

2.4 在以上问题中如果您有更好的解决方法,请回复我,共同学习,谢谢!


你可能感兴趣的:(linux,加密,二进制,压缩文件,执行文件)