我正在寻找一个免费的开源工具集,可以将各种“经典”的脚本语言(例如 Korn Shell、ksh、csh、bash 等)编译成一个可执行文件,如果脚本调用其他程序或可执行文件,则它们应被包含在单个可执行文件中。
原因:
1. 为了向客户交付代码而对代码进行混淆,以保护我们的知识产权 - 交付到客户自己的机器/系统上,我无法控制有关访问权限设置方面的任何内容。因此,程序文件必须是二进制的,通过查看文本编辑器或 hexdump 查看时无法轻易地查看其运行方式。 2. 为客户制作一个单一且简单的部署程序,不需要或只需最少的外部依赖。
我希望能够使用简单的方法,无需使用软件包管理器,因为:
1. 我不能指望客户的知识来执行(解压)打包说明 2. 我不能指望他们的计算机安装软件包的政策(也包括第三方)。
最简单的方法是能够将代码编译成一个单独的可执行文件,该文件不需要任何依赖项即可直接运行。
原因:
1. 为了向客户交付代码而对代码进行混淆,以保护我们的知识产权 - 交付到客户自己的机器/系统上,我无法控制有关访问权限设置方面的任何内容。因此,程序文件必须是二进制的,通过查看文本编辑器或 hexdump 查看时无法轻易地查看其运行方式。 2. 为客户制作一个单一且简单的部署程序,不需要或只需最少的外部依赖。
我希望能够使用简单的方法,无需使用软件包管理器,因为:
1. 我不能指望客户的知识来执行(解压)打包说明 2. 我不能指望他们的计算机安装软件包的政策(也包括第三方)。
最简单的方法是能够将代码编译成一个单独的可执行文件,该文件不需要任何依赖项即可直接运行。
shc
并不是有效的混淆工具 -- 在运行时轻易地读取脚本内容。使用strace
或sysdig
,或者仅对/proc
进行适当扫描即可提取原始脚本。 - Charles Duffyshc
编译的程序仍然需要安装 shell 和所有被调用的实用程序。唯一它有用的地方就是(弱)混淆。 - Fox