首页 > Script > shc “编译” bash 脚本的漏洞?

shc “编译” bash 脚本的漏洞?

[总点击:321次]
2009年12月28日

简介
shc 是一个能够将 bash 脚本“编译”成可执行程序的程序。
安装:
arch 下 yaourt -S shc 即可
用法:
shc -f your_script.sh

更详细的用法可以man之。运行之后会在当前目录下生成一个 your_cript.sh.c 的 c 源文件和一个 your_cript.sh.x 的可执行文件。

在 google 了 shc 之后发现很多童鞋用这个来加密自己的 bash 脚本,到底这个东东能不能加密你的脚本呢? 乍一看似乎是可以滴,但是经过 xiooli 童鞋摸啊捏阿的偶然发现这个东东的一个破绽,那就是,从 ps 的输出上是可以看到你脚本的源代码滴(连注释都不放过哦),下面来做个实验:
编写一个脚本:

1
2
3
4
5
cat test.sh
#!/bin/bash
# this is a test bash script
echo 'You can not see me.'
read anything

然后用 shc 将其编译成二进制程序:

shc -r -f test.sh

运行之:

./test.sh.x

另一个终端运行 ps:

1
2
3
4
ps -ef|grep test.sh.x
xiooli   24822 20812  0 00:46 pts/2    00:00:00 ./test.sh.x -c
#!/bin/bash?# this is a test bash script?echo 'You can not see me.'?read a
xiooli   24779 20416  0 00:35 pts/4    00:00:00 grep test.sh.x

哈哈,现原型了哦,试过了一个很复杂的 bash 脚本,仍然是能够看到那一大堆源码滴,虽然看起来有点乱,不过仔细瞧还是能瞧明白的,所以如果你要想用 shc 来加密你的 bash 脚本的话,还是早点打消这个念头吧。

Script , ,

  1. 2009年12月28日08:44 | #1

    这个貌似是把解释器和源码一并打包了的。

  2. 2009年12月28日09:38 | #2

    其实,也说不上神马漏洞…本来就不是用来加密的。

  3. xiooli
    2009年12月28日11:20 | #3

    额,我看网上好多童鞋都用这个来加密呢。

  4. xiooli
    2009年12月28日11:20 | #4

    那就不知道咯

  5. 2009年12月28日16:39 | #5

    我自己倒有一个不会被 ps/cmdline 泄密的版本

  6. xiooli
    2009年12月28日17:19 | #6

    @shellexy
    额? 发来看看

本文的评论功能被关闭了.