![使用 make 将 shell 脚本编译为可执行二进制文件](https://linux22.com/image/199475/%E4%BD%BF%E7%94%A8%20make%20%E5%B0%86%20shell%20%E8%84%9A%E6%9C%AC%E7%BC%96%E8%AF%91%E4%B8%BA%E5%8F%AF%E6%89%A7%E8%A1%8C%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6.png)
我知道shc
可以将 shell 脚本转换为二进制文件,但是有一个明显且著名的工具可以解密它。所以,我想找到另一种方法来做到这一点。
我听说它还make
可以将 shell 脚本转换为可执行二进制文件,但我发现的所有网站都是关于shc
.有谁知道如何make
在 Linux 上使用 shell 脚本将其转换为可执行二进制文件?
答案1
从逻辑上讲,Shell 脚本不能编译为二进制文件,因为它们允许在运行时以多种方式注入新的 shell 语法 —— 例如,通过构造一个新命令(从变量文本)exec
,然后source
执行该命令编译时不存在(或已被修改)。
shc 生成一个二进制文件,但它不编译任何内容。它只是使用随机密钥对 shell 文本文件进行编码,并将其嵌入到文件中。当可执行文件运行时,它会解码文本并将其通过管道传输到所需的 shell。
答案2
没有人知道这一点。不可能。
make
是一个构建自动化工具。它使软件构建过程自动化,但实际软件的构建仍然由编译器和其他构建工具完成。因此,如果您找到一个可以执行您想要的操作的工具(例如shc
)然后你可以自动化它与make
.make
它本身不编译软件、代码或 shell 脚本。它只是调用其他命令,例如 shell 脚本。