shc “编译” bash 脚本的漏洞?
[总点击:665次]
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 脚本的话,还是早点打消这个念头吧。
这个貌似是把解释器和源码一并打包了的。
其实,也说不上神马漏洞…本来就不是用来加密的。
额,我看网上好多童鞋都用这个来加密呢。
那就不知道咯
我自己倒有一个不会被 ps/cmdline 泄密的版本
@shellexy
额? 发来看看