通过SHC将BASH脚本编译为ELF文件
SHC 是由 Francisco Rosales 开发、基于 GPLv2 许可证发布的 Unix/Linux 开源脚本封装混淆工具,它并非真正的脚本编译器,不会将 Shell 逻辑直接转换为机器码,针对 Linux 环境下 Bash 等解释型脚本明文易被查看修改的问题,该工具可实现对脚本进行处理并生成ELF二进制文件,以此避免脚本源码直接明文暴露。
通过使用wget下载脚本程序源代码,使用gcc工具编译生成ELF文件,并将其移入到/bin/目录下保存。
[root@localhost ~]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz |
准备一个sh脚本,通过执行如下命令直接完成脚本转为可执行文件。
[root@localhost ~]# shc -r -T -f test.sh |
但该工具本质属于运行时内存解密的混淆封装,解密后的原始脚本会存放在进程内存中,可通过内存 dump 手段提取脚本内容,无法防护高敏感密钥,仅能实现基础的源码防直接查看。