Answers:
您可以尝试在该网站上标题为“ 如何使用SHC在Linux上加密Bash Shell脚本 ”中概述的步骤。本文讨论了称为SHC-Shell脚本编译器的工具的使用。
这是一个必须使用gcc / g ++构建的可执行文件。
$ ./shc -f random.sh
一旦运行它,您的shell脚本random.sh
将被转换成以下文件:
-rwx-wx--x. 1 ramesh ramesh 11752 Mar 27 01:12 random.sh.x
没有对SHC工具使用的方法进行很好的分析,该方法表明它并不太强大,如果您知道自己在做什么,就可以绕开它。该文章发布在linuxjournal.com网站上,标题为:偏执狂企鹅 -Shell 加密实用程序shc的局限性。
注意:这些类的工具可能更好地描述为混淆器。
fg
将其带到前台,然后才能正常工作。我还在寻找替代品。
如果要加密Shell脚本,请使用GPG。谁想要运行您的脚本,当然都必须先对其解密。
如果您希望某人能够运行该脚本但不读取该脚本,则这是一个完全不同的问题,与加密无关。这称为混淆。
如果您在该脚本中有密码或其他机密信息,则不会产生任何混淆。脚本迟早会使用密码来执行某项操作,届时,所有想要查找密码的人都会清楚看到密码。
如果您因为害怕别人会复制脚本而想隐藏脚本的工作方式,那就别管它了。没人在乎。
如果您因为对脚本的质量感到羞耻而想要隐藏脚本,请对其进行修复。
如果您想隐藏脚本的工作原理以隐藏脚本的工作原理,则该脚本是不可行的。有人可以在您的脚本执行时查看它,并观察它在做什么。
如果您已经读了那么多书,但仍然想“加密”脚本,那么您会误解一些主要问题。不要将脚本发送给任何人,也不要以纯文本格式发送。
搜索互联网时得到了此信息,由Claudio P.提供。
编写脚本(script-base.sh)
#!/bin/sh
echo "Hello World"
加密脚本(输入密码):
openssl enc -e -aes-256-cbc -a -in script-base.sh > script-enc
写de Wrapper(script-final.sh):
#!/bin/sh
openssl enc -d -aes-256-cbc -a -in script-enc | sh -
运行“ script-final.sh”,输入密码,该脚本将运行,而无需在磁盘上写入纯文本脚本。
基本上,您可以混淆但不能编译脚本。原因很简单,因为shell脚本是解释为单个命令,需要由系统一一执行,并且您可以看到这些命令由系统一一执行sh -x
并带有标志(也许还有-v旗)
对于大多数程序员而言,这足以理解正在发生的事情。
您可以模糊变量和一般流程,如果你想要的话,但你不能混淆你的程序执行的命令indvidual -这对于shell脚本通常是所有这些的。
最简单的解决方案可能是以C之类的编译语言重写Shell脚本。
如果您希望对公众隐藏脚本,请尝试将其提交到此站点。
尽管许多人可能不同意对以解释语言编写的脚本的源代码进行加密或混淆的想法,但我理解人们为什么要这样做。
作为一个多次被盗的人,我根本不在乎“混淆”或“加密”是否是一种忌讳。只要我的脚本受到保护并且可以像加密之前一样工作,我就很满意。我再也不会允许别人接受我的想法并付诸实践。不,用编译语言编写脚本是没有选择的。我不知道怎么去。
无论如何,如果您不想使用上述站点,请尝试使用最新版本的shc。我相信他们已经在github中对其进行了更新,以解决其他人提到的许多安全问题。在google“ shc github ”中输入以下内容,您会看到许多可用的选项,可以尝试一下。
祝好运!