shellc
用于将脚本语言转换为C代码的工具
Github: https://github.com/chenzhch/shellc.git
安装
cc -s shellc.c -O2 -o shellc
编译脚本并生成可执行程序
shellc sh example.sh
cc -s example.sh.c -O2 -o example
生成的C代码是 example.sh.c
,即原始文件名后加.c
。
对于生产环境中使用的程序,建议在编译时添加参数-s
, 以删除可执行程序中的符号表,增加了反汇编和逆向工程的难度。
本人试用了可以将shell脚本编译成可执行程序的工具shc
和 shellcrypt
,存在的主要问题是:
shc
实际调用的是sh -c
命令,通过ps -ef
命令就能看到源码。
shellc除了解决上述这两工具存在的问题外,还增加了代码混淆和随机生成有效字符位置计算函数增加反汇编逆向复杂度。
如果需要进一步增加逆向难度,还可使用obfuscator-llvm
等专业工具对生成后的C代码进一步进行混淆。
该程序适用于 shell、lua、javascript、perl、python、R、php 等各种脚本。
目前,该程序已在AIX7.1
、SCO UNIX5.0.6
、 Red Hat Linux7.8
、CentOS Linux6.4
环境中进行了测试并具有实际应用。建议对编译后的程序进行全面测试,以防止生产故障。