Chinaunix首页 | 论坛 | 博客

rgy

  • 博客访问: 427214
  • 博文数量: 179
  • 博客积分: 2580
  • 博客等级: 少校
  • 技术积分: 1890
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-19 08:45
文章分类

全部博文(179)

文章存档

2012年(7)

2011年(43)

2010年(60)

2009年(69)

我的朋友

分类: LINUX

2011-12-13 10:43:45


gzexe  a.sh

原来的 a.sh 就被存为 a.sh~,新的 a.sh 是乱码,但是可以用 sh 的方式运行。

一、 如果在 C 程序用 system() 来运行,就一点意义都没有了,

因为 system 就是就是又开了一个shell进程,然后其内容也是shell -c "" 中的参数。你可以在命令行中:

system("ls -l") 就相当于
sh -c 'ls -l'

这应该能够解释为什么在C中会暴露所有源码的问题。


二、如果是用shell,就一定不可能存在保险的加密方法!

因为shell是一种解释性的语言,它必须能被读,被逐行被解释器读入,所以不管用了何种方式,最后都逃不掉必须还原为明文,明文还能被读这一过程,这就决定了shell源码不可能有有效加密方式的宿命。

比如有做同样一件事的两个程序

---x--x--x 1 jingyi stud 806 Jan 14 03:02 a.out
---x--x--x 1 jingyi stud 94 Dec 20 15:49 a.sh

a.out 为 C 的编译产物,而 a.sh 是 shell 程序。 它们都有执行位,但是 a.out 能被执行,但是 a.sh 则不行!原因就是 a.sh 缺了 -r 位。


三、在不能保证安全的情况下,敏感口令还是不要出现在shell程序中为好。很多程序为了安全,不但不出现在程序中,还不准出现在命令行中,特意做成交互式的。因为在命令行中,通过 history 或其它类似手段重现历史命令,非常不安全。


四、如果只是出于防范不太高手的内部用户,执行

gzexec a.sh

后,a.sh 中源码会看不见了。原来的文件被更名为 a.sh~ ,并且不需要了,你可以删除或存在其它地方。

shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件.







用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.

但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等.

同样,在shell脚本运行时会也泄露敏感信息.



shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件.

这就很好的解决了上述问题.



shc的下载地址:              






安装:

tar zxvf shc-3.8.tgz

cd shc-3.8

make test

make

make test

make strings

make install  这一步需要root权限



使用方法:

shc -r -f script-name  注意:要有-r选项, -f 后跟要加密的脚本名.



运行后会生成两个文件,script-name.x 和 script-name.x.c

script-name.x是加密后的可执行的二进制文件.

./script-name    即可运行.

script-name.x.c是生成script-name.x的原文件(c语言)

阅读(834) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~