如何在linux中使用shc加密你的shell脚本
本文最后更新于 2283 天前,其中的信息可能已经有所发展或是发生改变。

原文链接:http://www.thegeekstuff.com/2012/05/encrypt-bash-shell-script/

本文谷歌机翻

内容如下:

问:如何在Linux环境下加密我的bash shell脚本?这个shell脚本包含密码,我不希望别人有执行权限查看shell脚本,并获取密码。有没有一种方法来加密我的shell脚本?

答:首先,你不应该加密你的shell脚本。你真的应该正确记录你的shell脚本,以便任何人都能准确的理解它的作用。如果它包含密码等敏感信息,你应该找出一个不同的方法来编写shell脚本,而无需进行加密。
话虽这么说,如果你仍然坚持加密一个shell脚本,您可以使用SHC。

1. 下载并安装shc

wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
gzip -d xvfz shc-3.8.7.tgz
cd shc-3.8.7
mkdir -p /usr/local/man/man1
make
make install

shc的使用方法:

shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script

2. 创建一个简单的测试shell脚本

为了达到测试的目的,我们写一个产生随机数的random.sh shell脚本,运行的时候必须指定想生成多少随机数。

shell脚本内容如下:

vi random.sh

#!/bin/bash

echo -n "你想生成多少随机数字? "
read max

for (( start = 1; start <= $max; start++ ))
do
echo -e $RANDOM
done

3. 加密random.sh脚本

shc -f random.sh

将创建这两个文件

ls -l random.sh*

-rw-r--r--. 1 root root 139 Jul 9 16:16          random.sh
-rwx--x--x. 1 root root 8708 Jul 9 16:18     random.sh.x
-rw-r--r--. 1 root root 10022 Jul 9 16:18     random.sh.x.c

random.sh 是原来未加密的shell脚本文件
random.sh.x  是加密后的二进制文件
random.sh.x.c 是加密random.sh文件的C源代码。这个C源代码被编译之后会生成加密后random.sh.x文件

file命令查看文件类型

file random.sh
random.sh: Bourne-Again shell script text executable
file random.sh.x
random.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
file random.sh.x.c
random.sh.x.c: ASCII C program text

4.执行加密后的二进制文件,确保可以正常工作。

./random.sh.x

请注意加密后的random.sh.x文件仍然依赖第一行的#!/usr/bin/bash

5.为这个shell脚本指定到期时间

使用SHC你可以指定一个到期时间。当有人试图在到期时间之后执行这个shell脚本,他们会得到一个错误信息。

比如说,你不希望任何人,在2016-3-12后执行random.sh.x

可以使用:shc -e 选项指定有效期并加密shell脚本,格式:dd / mm / yyyy

例子:

shc -e  12/3/2016 -f random.sh

在这个例子中,如果有人试图在2016-3-12之后执行random.sh.x,他们将会看见一个默认的过期信息。

./random.sh.x: has expired!
Please contact your provider

如果你想指定自己的自定义到期消息,可以使用 -m选项。

shc -e 12/3/2016 -m "联系[email protected]此脚本的新版本" -f random.sh

./random.sh.x
./random.sh.x:已过期!
联系[email protected]此脚本的新版本

6.创建兼容性更好的shc加密Shell脚本

除了-e-m,也可以使用下列选项:

-r    兼容性更好,可在相同操作系统下执行。(不一定)
-T: 允许让ltrace, strace那样的程序追踪脚本运行
-v   详细信息

最后,值得再次重复:你不应该加密你的shell脚本。如果你决定使用SHC加密您的shell脚本,请记住,一个聪明的人仍然可以从shc生成的二进制文件获取到原来的shell脚本。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇