scripting - 如何将 Linux shell 脚本编译为独立的可执行文件*二进制*(即不仅仅是 chmod 755)?

标签 scripting binary compilation executable obfuscation

我正在寻找一个免费的开源工具集,可以编译各种“经典”脚本语言,例如Korn Shell、ksh、csh、bash 等作为可执行文件 - 如果脚本调用其他程序或可执行文件,则将它们包含在单个可执行文件中。

原因:

  1. 混淆交付给客户的代码,以免泄露我们的知识产权 - 交付到客户自己的机器/系统上,而我无法控制我的权限可以设置有关访问的权限,因此程序文件必须是二进制的,这样通过在文本编辑器或 hexdump 查看器中查看无法轻松查看工作原理。

  2. 为客户制作一个简单部署的单一程序,没有/或最少数量的任何外部依赖项。

我更喜欢简单的东西,不需要包管理器,因为:

  1. 我不能依赖客户的知识来执行(取消)包装说明,并且

  2. 我不能依赖管理其机器的有关安装软件包(实际上是来自第三方)的策略。

最简单的首选方法是能够将单个可执行文件编译为正确的机器代码,该可执行文件将开箱即用,无需任何依赖项。

最佳答案

完全满足我需求的解决方案是 SHC(免费工具)或 CCsh(商业工具)。两者都将 shell 脚本编译为 C,然后可以使用 C 编译器进行编译。

有关 SHC 的链接:

有关 CCsh 的链接:

关于scripting - 如何将 Linux shell 脚本编译为独立的可执行文件*二进制*(即不仅仅是 chmod 755)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6423007/

相关文章:

linux - 需要监控目录变化,并执行操作

python - 这个Python函数应该如何调用

java - 如何从不同的目录运行 java 程序?

binary - 哪些算术运算在无符号数和二进制补码有符号数上是相同的?

floating-point - 二进制浮点加法算法

compilation - 编译语言和解释语言之间的区别?

linux - bash 上的 GAMESS 配置脚本错误 : syntax error near $<

python - 如何运行位于子目录中的脚本?导入错误 : No module named x

php - 如何使用命令 2 发送推送通知二进制格式

java - xamarin如何编译到android?