将一个shell脚本生成一个二进制命令

如果我们想要混淆脚本代码,那么我们可以Shell 脚本编译器工具 (SHC),使用 shc 将 bash/shell 脚本编译为二进制文件隐藏源代码并防止被被人修改的功能。

在centos系统上,安装shc。

yum install -y shc
  1. 先写一个bash 脚本,并保持为hello.sh
#!/bin/bash
echo "my name is $1"
  1. 测试执行该脚本
[sftcwl@gz-cvm-ebuild-xuxiaoyu-dev001 ~]$ sh ./hello.sh xiaoyu
my name is xiaoyu
  1. 使用shc编译hello.sh
shc -f hello.sh
  1. 执行完成后同目录下会生成俩个文件,如下
[sftcwl@gz-cvm-ebuild-xuxiaoyu-dev001 shc]$ ls
hello.sh   hello.sh.x   hello.sh.x.c

hello.sh.x 是编译后的二进制文件,而hello.sh.x.c则是 C 编译后的文件。

  1. 重命名二进制文件
mv hello.sh.x hello

此时hello文件就是一个二进制文件了

  1. 测试二进制文件
[sftcwl@gz-cvm-ebuild-xuxiaoyu-dev001 ~]$./hello xiaoyu
my name is xiaoyu

发现结果和shell脚本返回的完全一致,到此二进制文件编译完成,其实超级简单吧。

  1. 将hello二进制文件加入到环境变量中
    加入之后记得使用source命令,然后就可以在任何目录愉快的使用hello二进制命令了。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容