使用 make 将 shell 脚本编译为可执行二进制文件

使用 make 将 shell 脚本编译为可执行二进制文件

我知道shc可以将 shell 脚本转换为二进制文件,但是有一个明显且著名的工具可以解密它。所以,我想找到另一种方法来做到这一点。

我听说它还make可以将 shell 脚本转换为可执行二进制文件,但我发现的所有网站都是关于shc.有谁知道如何make在 Linux 上使用 shell 脚本将其转换为可执行二进制文件?

答案1

从逻辑上讲,Shell 脚本不能编译为二进制文件,因为它们允许在运行时以多种方式注入新的 shell 语法 —— 例如,通过构造一个新命令(从变量文本)exec,然后source执行该命令编译时不存在(或已被修改)。

shc 生成一个二进制文件,但它不编译任何内容。它只是使用随机密钥对 shell 文本文件进行编码,并将其嵌入到文件中。当可执行文件运行时,它会解码文本并将其通过管道传输到所需的 shell。

答案2

没有人知道这一点。不可能。

make是一个构建自动化工具。它使软件构建过程自动化,但实际软件的构建仍然由编译器和其他构建工具完成。因此,如果您找到一个可以执行您想要的操作的工具(例如shc然后你可以自动化它与make.make它本身不编译软件、代码或 shell 脚本。它只是调用其他命令,例如 shell 脚本。

相关内容