Linux中让shell脚本变成可执行文件

如何创建Linux脚本,在Linux中创建脚本如何运行?

先创建一个脚本文件run.sh

1
touch run.sh

输入内容:

1
2
3
4
5
6
#!/bin/bash
# Author : Sogrey

echo "What's your name?"
read PERSON
echo "Hello, $PERSON"

sh/bash执行Bash脚本

1
2
3
4
5
6
7
8
[sogrey@bogon 文档]$ sh run.sh
What's your name?
Sogrey
Hello, Sogrey
[sogrey@bogon 文档]$ bash run.sh
What's your name?
Sogrey
Hello, Sogrey

chmod命令设置可执行权限

1
2
3
4
5
6
7
8
9
[sogrey@bogon 文档]$ chmod +x ./run.sh
[sogrey@bogon 文档]$ ll
总用量 28
-rwx------. 1 sogrey sogrey 90 3月 7 12:02 run.sh
[sogrey@bogon 文档]$ ./run.sh
What's your name?
Sogrey
Hello, Sogrey
[sogrey@bogon 文档]$

shc打包二进制文件

gzexe加密

gzexe命令即可隐藏shell源码,这个命令是系统自带的gzexe程序。在运用中, gzexe  script.sh会把原来没有加密的文件备份为 script.sh~ ,同时 script.sh 即被变成加密文件。 gzexe  -d script.sh会解密还原脚本,所以只能够满足一般的加密用途。

1
2
3
4
[sogrey@bogon 文档]$ gzexe run.sh # 加密
run.sh: 7.8%
[sogrey@bogon 文档]$ gzexe -d run.sh # 解密
[sogrey@bogon 文档]$

shc打包二进制文件

在源中搜索软件:apt-cache search shc,显示shc为Shell script compiler,然后安装 apt-get install shc ,安装后程序放置于/usr/bin/shc。

shc把shell脚本封装为一个可执行的二进制文件,shc -h查看使用方法。

shc -v -r -f run.sh 打包成run.sh.x二进制文件,同时生成run.sh.x.c文件,这个为C语言文件。猜想这个工具是将shell脚本转为C语言,然后在打包成二进制文件。

如果打包不成功的话,shc -h最下面有environment环境要求,要在保证满足。

shc的反编译UnSHc

github上克隆:git clone https://github.com/yanncam/UnSHc.git,文件夹lastest中有个脚本unshc.sh可以完成反编译功能。

./unshc.sh -h查看使用方法,笔者使用sample里面的例程测试可以。但是笔者觉得这个工具意义不大,除非知道二级制文件是使用shc来编译的,不然反编译出来也不成功。反编译UnSHc对于开发人员来说作用不大。

参考

文章目录
  1. sh/bash执行Bash脚本
  2. chmod命令设置可执行权限
  3. shc打包二进制文件
    1. gzexe加密
    2. shc打包二进制文件
    3. shc的反编译UnSHc
  4. 参考
本站总访问量 | 本文总阅读量