我正在寻找一个免费的开源工具集,可以编译各种“经典”脚本语言,例如Korn Shell、ksh、csh、bash 等作为可执行文件 - 如果脚本调用其他程序或可执行文件,则将它们包含在单个可执行文件中。
原因:
混淆交付给客户的代码,以免泄露我们的知识产权 - 交付到客户自己的机器/系统上,而我无法控制我的权限可以设置有关访问的权限,因此程序文件必须是二进制的,这样通过在文本编辑器或
hexdump
查看器中查看无法轻松查看工作原理。为客户制作一个简单部署的单一程序,没有/或最少数量的任何外部依赖项。
我更喜欢简单的东西,不需要包管理器,因为:
我不能依赖客户的知识来执行(取消)包装说明,并且
我不能依赖管理其机器的有关安装软件包(实际上是来自第三方)的策略。
最简单的首选方法是能够将单个可执行文件编译为正确的机器代码,该可执行文件将开箱即用,无需任何依赖项。
最佳答案
完全满足我需求的解决方案是 SHC(免费工具)或 CCsh(商业工具)。两者都将 shell 脚本编译为 C,然后可以使用 C 编译器进行编译。
有关 SHC 的链接:
- https://github.com/neurobin/shc
- http://www.datsi.fi.upm.es/~frosal/
- http://www.downloadplex.com/Linux/System-Utilities/Shell-Tools/Download-shc_70414.html
有关 CCsh 的链接:
关于scripting - 如何将 Linux shell 脚本编译为独立的可执行文件*二进制*(即不仅仅是 chmod 755)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6423007/