使用shc加密shell脚本
转自:http://www.cnblogs.com/dba001/archive/2011/01/17/1937768.html
采用shc工具加密Shell脚本,以提高shell脚本文件的安全性。
介绍:当我们写的shell脚本,存在有敏感信息如账号密码,于是想加强脚本的安全性;还有不想让别人查看/修改您的shell核心代码等等情况。都可使用以下工具进行加密。
shc是一个脚本编译工具, 使用RC4加密算法, 它能够把shell程序转换成二进制可执行文件(支持静态链接和动态链接)。
shc官网:http://www.datsi.fi.upm.es/%7Efrosal/
安装shc
wget http://www.datsi.fi.upm.es/%7Efrosal/sources/shc-3.8.7.tgz
tar vxf shc-3.8.7.tgz
cd shc-3.8.7
make test
make strings
make install
若报错:
*** Installing shc and shc.1 on /usr/local
*** ?Do you want to continue? y
install -c -s shc /usr/local/bin/
install -c -m 644 shc.1 /usr/local/man/man1/
install: target `/usr/local/man/man1/' is not a directory: No such file or directory
make: *** [install] Error 1
请创建 mkdir -p /usr/local/man/man1/ ,然后运行make install
常用参数:
-e date (指定过期日期)
-m message (指定过期提示的信息)
-f script_name(指定要编译的shell的路径及文件名)
-r Relax security. (可以相同操作系统的不同系统中执行)
-v Verbose compilation(编译的详细情况)
使用方法:
shc -v -f abc.sh
-v 是现实加密过程
-f 后面跟需要加密的文件
运行后会生成两个文件:
abc.sh.x 和 abc.sh.x.c
abc.sh.x为二进制文件,赋予执行权限后,可直接执行。更改名字mv abc.sh.x a.sh
abc.sh.x.c 是c源文件。基本没用,可以删除
另shc还提供了一种设定有效执行期限的方法,过期时间,如:
# shc -e 28/01/2012 -m "过期了" -f abc.sh
选项“-e”指定过期时间,格式为“日/月/年”;选项“-m”指定过期后执行此shell程序的提示信息。
如果在过期后执行,则会有如下提示:
# ./abc.sh.x
./abc.sh.x: has expired!
过期了
1). 加密脚本.
# shc -v -r -f mysql_backup.sh
-v: 是verbose模式,输出更详细编译日志. -f: 指定脚本的名称.
上面命令在屏幕上的输出:
shc shll=sh
shc [-i]=-c
shc [-x]=exec ‘%s’ “$@”
shc [-l]=
shc opts=
shc: cc mysql_backup.sh.x.c -o mysql_backup.sh.x
shc: strip mysql_backup.sh.x
shc: chmod go-r mysql_backup.sh.x
我们可以看到生成了动态链接可执行二进制文件mysql_back.sh.x和C源文件mysql_backup.sh.x.c, 注意生成的二进制文件因为是动态链接形式, 所以在其它平台上不能运行:
mysql_backup.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
2). 生成静态链接的二进制可执行文件.
不过, 我们可以通过下面的方法生成一个静态链接的二进制可执行文件:
# CFLAGS=-static shc -r -f mysql_backup.sh
# file mysql_backup.sh.x
mysql_backup.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
statically linked, for GNU/Linux 2.6.9, stripped
提示: 通过sch加密后的脚本文件很安全吗?
一般来说是安全的, 不过可以使用gdb和其它的调试工具获得最初的源代码. 如果你需要更加安全的方法, 可以考虑使用wzshSDK.
另外, sch还可以设置脚本的运行期限和自定义返回信息:
shc -e 03/31/2007 -m “the mysql backup script is now out of date.” -f mysql_back.sh
-e表示脚本将在2007年3月31日前失效, 并根据-m定义的信息返回给终端用户.
使用该工具有时会遇到生成的脚本无法执行的情况,提示“Operation not permitted”。这时需要对生成的*.c文件进行修改,再重新编译。比如有test.sh脚本需要加密:
1、./shc -v -r -f test.sh,生成test.x、test.x.c文件
2、修改test.x.c文件,删除图中所示部分。
3、gcc -o test.x test.x.c 重新编译生成test.x文件。
使用shc加密shell脚本相关推荐
- 如何使用 SHC 加密 Shell 脚本
如何在Linux环境中加密shell脚本?shell脚本包含密码,不希望其他具有执行权限的人查看shell脚本并获取密码.可以安装使用shc工具,普通用户无法读取shc创建的加密Shell脚本.SHC ...
- linux shc shell脚本_使用shc工具加密shell脚本详解
Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件.经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x ...
- shell实例第18讲:利用gzexe加密shell脚本
利用gzexe加密shell脚本 gzexe_test.sh内容如下: #!/bin/bashecho "gzexe test!" 结果: 使用gzexe加密shell脚本命令:g ...
- c语言加密shell脚本,shell脚本加密
如何保护自己编写的shell程序 要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1.加密 2.设定过期时间,下面以shc工具为例说明: 一.下载安装shc工具 shc是一个加密s ...
- shc将shell脚本转成二进制文件
最近在做一个项目,需要把shell脚本自定拷贝到目标客户端中执行,但是并不想让用户知道脚本的源码,于是采用shc对shell脚本进行处理 首先装个wget工具 yum -y install wget ...
- shc加密shell原理
有人想加密自己的perl脚本,有人想加密自己的php,有人认为bash编程并不是真正的编程,因为它们的源代码都是可见的,不像c程序那样,一旦经过编译就再也不可读了...其实这是一种误区,其一就是c语言 ...
- linux 脚本加密,Shell脚本的4种加密详细教程
这篇文章上次修改于 1159 天前,可能其部分内容已经发生变化,如有疑问可询问作者. 普及,shell脚本是什么? Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就 ...
- shc加密(仅仅对shell脚本加密)
shc加密(仅仅对shell脚本加密) shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法很好的解决了脚本中含有IP. 密码等不希望公开的问题 ...
- linux shc shell脚本_CentOS 下使用 shc 加密你的 linux shell 脚本
说明: shc(generic shell script compiler)是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这样可以很好地隐藏脚本中IP. ...
最新文章
- java静态/动态成员变量、初始化块,父类/子类构造函数执行顺序问题
- 极客新闻——10、Java工程师应该如何成长?
- 【数理知识】《矩阵论》方保镕老师-第4章-赋范线性空间与矩阵范数
- Fix “Windows cannot access the specified device path or file” Error
- c语言初始化字符数组为空,怎么把已经初始化的字符数组设置为空?
- Java实现XSS防御
- Dagoin之modelform组件
- 详说sizeof与strlen的区别与联系
- 零基础使用小米球ngrok来快速实现内网穿透
- wp手机开发之获取汉字拼音的首字母
- 产品定位,什么是产品?什么是产品定位?
- 算法——递归与递推[蓝桥杯]
- 微服务架构与开源框架
- 我来讲述计算机的知识,计算机基础知识讲述.doc
- 秒的换算:皮秒、纳秒、微秒、毫秒
- java 图片 word文档_【Java】用Freemarker完美导出word文档(带图片)
- 洛克王国服务器维护费用,洛克王国变成充钱王国,年费宠物太坑人,不买就要被淘汰?...
- 腾讯广点通广告投放-转化归因API回传接口对接踩坑指南
- Distortion Correction
- 移动通信网络频段大全