转:http://jingyan.baidu.com/article/95c9d20d9ebc72ec4f756156.html
Shell很很常用的程序语言,在管理linux系统的时候非常快捷,而且开发成本极低,效率非常高。但是很多时候我们不希望别人能够直接读取源文件,这样就无法保证程序的秘密性,因此可以将 shell文件编译成C语言的程序,直接运行。
方法/步骤
-
第一步非常简单,就是获取到 shc 程序的源码文件,这个可以从官方站点(现在视乎无法访问)下载http://www.datsi.fi.upm.es/~frosal/sources/,或者从参考资料里面提供的地址下载。
-
下载到源文件后,先要解压出来,使用Tarball工具进行解压,命令时 tar -xvf shc.tar 这样就能得到解压后的文件,。
-
这时候我们自己编译shc得到可以使用的可执行程序,过程如下:
make
make install
等待系统完成即可,我这里因为权限问题,帮助文件安装出了些问题,但整体还是没有问题的。
-
我们准备一个程序,这里就使用简单的显示语句,文件名 test.sh
echo " this is a shell"
然后 sch -f test.sh 完成编译操作,会发现目录下多出如下图所示的文件
-
这里是编译完成后的目录内容,可以看到 .x 的已经编译后的二进制可执行文件,而 .x.c 的是转化的C语言源文件。
-
这里显示的是经过转化过的C语言源文件,可以在同一目录下看到,内容已经经过处理,字符串都进行了编码处理。
-
我们直接执行对应的编译后的二进制程序,可以看到,效果和shell文件是一样的,但是这样源代码隐藏了起来,保密性强。
END