1. shc是什么?
shc是一个可以将shell script转化为可执行文件的工具, 默认一个shell script文件经过工具处理后有另外两个文件.x和.x.c文件, 其中.x文件可执行, 而.x.c文件是其源码.
需要注意的是这个工具不是编译, shc没有自己编译器,其处理过程更像是代码编码+加密,了解工具工作机制可以通过解码获得源码; 也正因为不是编译所以最执行终效率没有提升.
2. shc安装
curl -O http://www.datsi.fi.upm.es/\~frosal/sources/shc-3.8.9b.tgz
tar zxvf shc-3.8.9b.tgz
cd shc-3.8.9b
make
验证:
cd shc-3.8.9b
./shc -v
shc parse(-f): No source file specified
shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script
3. 编码和编译脚本
新建一个test目录, 在测试目录新建测试脚本如下:
#!/bin/bash
echo "ok"
然后执行编码命令:
./shc -f test/test.sh
ls test/test.*
test/test.sh test/test.sh.x test/test.sh.x.c
至此, test.sh.x即最终的可执行文件, 执行如下:
./test/test.sh.x
OK