Linux 下生成二进制shell 脚本
Posted 成长中的大叔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 下生成二进制shell 脚本相关的知识,希望对你有一定的参考价值。
日常编写shell脚本时会写入账号和密码写入脚本,但是不希望泄露账号密码,此时对shell脚本进行加密变成二进制执行文件,这样避免关键信息的泄露。
主要使用 shc 对 Linux shell 脚本加密,shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,可以避免我们shell脚本中保密信息被公开。
一、官网下载shc
http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz
二、 安装shc
[root@iZ2ze2pbbffhmn53ao4tuaZ ~]# tar -zxvf shc-3.8.9.tgz
shc-3.8.9/
shc-3.8.9/match
shc-3.8.9/shc-3.8.9.c
shc-3.8.9/CHANGES
shc-3.8.9/test.csh
shc-3.8.9/test.bash
shc-3.8.9/shc.c
shc-3.8.9/shc.1
shc-3.8.9/shc.html
shc-3.8.9/pru.sh
shc-3.8.9/test.ksh
shc-3.8.9/makefile
shc-3.8.9/shc.README
shc-3.8.9/Copying
[root@iZ2ze2pbbffhmn53ao4tuaZ shc-3.8.9]# mkdir -p /usr/local/man/man1
#shc将安装命令到/usr/local/bin/目录下;将帮助文档存放在/usr/local/man/man1/目录下,如果系统中无此目录,安装时会报错
[root@iZ2ze2pbbffhmn53ao4tuaZ shc-3.8.9]# make install
cc -Wall shc.c -o shc
*** 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/
#安装过程中会提示是否继续,如果直接回车会报错,所以输入y或者yes
三、生成加密文件
1、shc 常用参数
-e date #指定执行文件过期日期
-m message #指定过期时的提示的信息
-f script #指定要编译的shell的路径及文件名(必须选参数)
-r Relax security. #允许相同操作系统的下执行
-v Verbose compilation #打印编译的详细信息
[root@iZ2ze2pbbffhmn53ao4tuaZ ~]# shc -v -r -f pandadata-baby-d.sh #显示编译信息,允许多系统执行
shc shll=bash
shc [-i]=-c
shc [-x]=exec '%s' "$@"
shc [-l]=
shc opts=
shc: cc pandadata-baby-d.sh.x.c -o pandadata-baby-d.sh.x
shc: strip pandadata-baby-d.sh.x
shc: chmod go-r pandadata-baby-d.sh.x
加密后会生成后缀为pandadata-baby-d.sh.x和后缀pandadata-baby-d.sh.x.c的两个文件, 其中pandadata-baby-d.sh.x是加密后的可执行的二进制文件,/pandadata-baby-d.sh.x运行,pandadata-baby-d.sh.x.c是生成pandadata-baby-d.sh.x的C语言版本的原文件,如果要提供给其他人执行,这样他只能看见脚本执行的结果就就无法查看到了执行文件的内容了,这样大大的加强了信息的保护。
如果需要给文件设置一个有效日期,这个时候我们增加时间参数-e即可,如果过期了我们需要给个提示信息增加-m参数即可。
shc -e 15/11/2017 -m "脚本已经过期" pandadata-baby-d.sh
以上是关于Linux 下生成二进制shell 脚本的主要内容,如果未能解决你的问题,请参考以下文章