如何保护本身编写的shell程序

要保护本身编写的shell脚本程序,方法有不少,最简单的方法有两种:一、加密 二、设定过时时间,下面以shc工具为例说明:
mysql

1、下载安装shc工具sql

shc是一个加密shell脚本的工具.它的做用是把shell脚本转换为一个可执行的二进制文件.shell

下载 shc-3.8.7.gz安全

# tar zxvf shc-3.8.7.gz
# cd shc-3.8.7
# make test
# make
# make test
# make strings
# make install   #root权限


2、加密方法:oracle

shc -r -f script-name   注意:要有-r选项, -f 后跟要加密的脚本名.工具

运行后会生成两个文件,script-name.x 和 script-name.x.c加密

script-name.x是加密后的可执行的二进制文件.spa

./script-name 便可运行.调试

script-name.x.c是生成script-name.x的原文件(c语言)日志


# shc -v -f test.sh
-v是verbose模式, 输出更详细编译日志;
-f 指定脚本的名称.

# ll test*
-rwxr-xr-x   1 oracle oinstall    1178 Aug 18 10:00 test.sh
-rwx--x--x   1 oracle oinstall    8984 Aug 18 18:01 test.sh.x
-rw-r--r--   1 oracle oinstall   14820 Aug 18 18:01 test.sh.x.c

# file test.sh.x
test.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped


能够看到生成了动态连接可执行二进制文件test.sh.x和C源文件testup.sh.x.c, 注意生成的二进制文件由于是动态连接形式, 因此在其它平台上不能运行.生成静态连接的二进制可执行文件,能够经过下面的方法生成一个静态连接的二进制可执行文件:

# CFLAGS=-static shc -r -f test.sh
# file testup.sh.x


三. 经过sch加密后的脚本文件很安全吗?

通常来讲是安全的, 不过可使用gdb和其它的调试工具得到最初的源代码. 若是须要更加安全的方法, 能够考虑使用wzshSDK.另外shc还能够设置脚本的运行期限和自定义返回信息:

$ shc -e 03/31/2007 -m "the mysql backup scrīpt is now out of date." -f test.sh

-e表示脚本将在2007年3月31日前失效, 并根据-m定义的信息返回给终端用户.


例外

若是你仅仅是看不见内容就好了的话,不妨用

gzexe a.sh

原来的 a.sh 就被存为 a.sh~,新的 a.sh 是乱码,可是能够用 sh 的方式运行。

相关文章
相关标签/搜索