Binary 如何将bash文件转换为二进制可执行文件

Binary 如何将bash文件转换为二进制可执行文件,binary,executable,Binary,Executable,我通过SHC从linux服务器上的bash脚本创建了一个二进制可执行文件。创建的二进制文件在linux机器上运行良好,但在Mac上是错误的。如何将bash文件转换成可以在任何地方运行的二进制可执行文件(ubuntu、CentOS、Mac、Cygwin) 我的bash脚本的Shebang #!/bin/bash 在Linux机器上 ./ir16installer USAGE : ir16fetcher <servername/ip address> [th

我通过SHC从linux服务器上的bash脚本创建了一个二进制可执行文件。创建的二进制文件在linux机器上运行良好,但在Mac上是错误的。如何将bash文件转换成可以在任何地方运行的二进制可执行文件(ubuntu、CentOS、Mac、Cygwin)

我的bash脚本的Shebang

    #!/bin/bash
在Linux机器上

    ./ir16installer 
    USAGE  : ir16fetcher <servername/ip address> [the n th latest build - optional. Default 1]
    EXAMPLE: ir16fetcher jagger 2
    EXAMPLE: ir16fetcher 167.116.6.155
    REQUIRE: Please make sure conf file in installation folder ~/IRinstall/ir16 & ~/IRinstall/irmanager

我想这行不通

“编译后的二进制文件仍将依赖于shell 在外壳代码的第一行中指定(即。 #!/bin/sh),因此shc不会创建完全独立的 二进制文件。”


我想这行不通

“编译后的二进制文件仍将依赖于shell 在外壳代码的第一行中指定(即。 #!/bin/sh),因此shc不会创建完全独立的 二进制文件。”


开始,您必须为需要支持的每个体系结构和操作系统执行此操作。在任何情况下,使用这种方法进行分发似乎都没有任何好处。它增加了依赖性并使交付复杂化,我很确定“shc”编译器实现的任何混淆都很容易被逆转。

对于需要支持的每个体系结构和操作系统,您都必须这样做。在任何情况下,使用这种方法进行分发似乎都没有任何好处。它增加了依赖性并使交付复杂化,我很确定“shc”编译器实现的任何混淆都很容易被逆转。

如果这里的目标是“隐藏”源代码,然后让代码的“隐藏”副本在您列出的Unix操作系统上可执行,那么,加密确实是您唯一的选择

我这样说是因为加密工具在每个基本Unix安装上都可用。出于您的目的,这是一件非常好的事情,因为您不必下载或配置任何其他内容。它们就在那里,作为操作系统自然安装的一部分。其中一个工具叫做openssl

使用openssl加密文件/脚本:

echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
使用openssl解密文件/脚本:

echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
现在,要让openssl自动完成您希望它完成的任务,而无需花费数小时的时间来找出解决方法,您可以将脚本粘贴到类似的站点。此站点将为您生成代码的“可执行”版本,然后您可以在任何Mac、Ubuntu、RedHat、CentOS box上运行。

如果此处的目标是“隐藏”您的源代码,然后让代码的“隐藏”副本在您列出的Unix操作系统上可执行,那么,加密实际上是您唯一的选择

我这样说是因为加密工具在每个基本Unix安装上都可用。出于您的目的,这是一件非常好的事情,因为您不必下载或配置任何其他内容。它们就在那里,作为操作系统自然安装的一部分。其中一个工具叫做openssl

使用openssl加密文件/脚本:

echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
使用openssl解密文件/脚本:

echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content

现在,要让openssl自动完成您希望它完成的任务,而无需花费数小时的时间来找出解决方法,您可以将脚本粘贴到类似的站点。该站点将为您生成一个“可执行”版本的代码,然后您可以在任何Mac、Ubuntu、RedHat、CentOS box上运行。

Linux二进制文件在Mac上不起作用。在Mac上创建二进制文件。顺便说一句,为什么需要为shell脚本创建二进制文件?为了让mac add.command扩展允许执行,Linux二进制文件在mac上不起作用。在Mac上创建二进制文件。顺便说一句,为什么需要为shell脚本创建二进制文件?为了让mac add.command扩展能够执行。。