0x00 介绍
总会有自己写的脚本不想给别人源码的时候这时候最好是加密,既然是加密就不想被解密,那么用shc是比较好的,高版本的4.x目前还不能被反解密。3.8.x的低版本能够被解密。
需要用到 gcc 编译用
使用方法
sudo apt install shc gcc
shc -r -v -f test.sh
shc
:这是一个将Shell脚本编译成二进制可执行文件的工具。-r
:放宽安全限制,生成可再分发的二进制文件。-v
:表示在编译过程中输出详细的信息。-f test.sh
:表示要编译的源文件名为test.sh
。
完成后会出现另外 2 个文件。
test.sh.c c源码
test.sh.x 二进制文件
shc的帮助文件,里面还有别的参数
shc 版本 4.0.3,通用 Shell 脚本编译器
shc GNU GPL 版本 3,Md Jahidul Hamid <jahidulhamid@yahoo.com>
shc 用法:shc [-e 日期] [-m 消息] [-i 选项] [-x 命令] [-l 选项] [-o 输出文件] [-rvDSUHCABh] -f 脚本
-e %s 过期日期,格式为 dd/mm/yyyy [无]
-m %s 过期时显示的消息 ["请联系您的提供商"]
-f %s 要编译的脚本文件名
-i %s shell 解释器的内联选项,例如:-e
-x %s 执行命令,作为 printf 格式,例如:exec('%s',@ARGV);
-l %s 最后一个 shell 选项,例如:--
-o %s 输出文件名
-r 放宽安全限制,生成可再分发的二进制文件
-v 显示编译详细信息
-S 打开 root 可调用程序的 setuid 选项 [关闭]
-D 打开调试 exec 调用 [关闭]
-U 使二进制文件无法追踪 [否]
-H 强化安全:提供额外的安全保护 [否]
要求 Bourne shell (sh),不支持参数
-C 显示许可证并退出
-A 显示摘要并退出
-B 为 busybox 编译
-h 显示帮助并退出
使用的环境变量:
名称 默认值 用途
CC cc C 编译器命令
CFLAGS <无> C 编译器标志
LDFLAGS <无> 链接器标志