问题很简单;是否可以将 bash 脚本转换为可执行文件?如果是,如何实现?
最佳答案
这是可能的,但你不想。
- 这不会是有效的混淆。
- 不会再小了。
- 它不会更快。
不会变小
在支持将脚本编译成独立可执行文件的地方,这是通过将解释器的副本放入可执行文件来完成的。因此,这比单独的脚本要大得多。
不会更快
不幸的是,bash 使用的执行模型天生就很慢:几乎所有功能都由外部命令提供;简单命令的参数,甚至它们的名称,都可以通过扩展操作的结果进行修改。这种动态水平使得有效编译性能变得不可能。 (zsh 支持预编译过程,但好处有限,主要是解析自身的过程)。
这不会是有效的混淆
以 shc
为例:它按字面意思将脚本的原始源作为命令行参数传递。因此,可以通过从 /proc
中读取命令行参数或使用 strace
来读取该源代码。
正如他们所说,“默默无闻的安全根本不是安全”——任何有能力的人都可以轻松提取任何密码或以这种方式混淆的其他内容。
关于bash - 是否可以将 bash 脚本转换为可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31280501/