如何加密或扰乱我的 shell 脚本,使其肉眼无法读取?任何一种方法都可以,请提供具体步骤。
答案1
如果要加密 shell 脚本,请使用GPG。谁想要运行你的脚本当然必须先解密它。
如果您希望某人能够运行脚本但不能读取它,那么这是一个完全不同的问题,与加密无关。它被称为混淆。
如果您在该脚本中有密码或其他机密信息,那么再多的混淆也无法隐藏它。脚本迟早会使用密码来执行某些操作,此时密码将清晰地显示给任何寻找它的人。
如果您因为担心有人复制而想隐藏脚本的工作原理,那就别想了。没人在乎。
如果您因为对其质量感到羞耻而想隐藏脚本,请修复它。
如果您想隐藏脚本的工作原理,因为您想隐藏它的功能,这是不可行的。有人可以在执行脚本时查看它并观察它正在做什么。
如果您已经读了这么多,但仍然想“加密”您的脚本,那么您就误解了一些重大内容。不要将您的脚本发送给任何人,或以纯文本形式发送。
答案2
在搜索互联网时得到了这个,由 Claudio P. 提供。
编写您的脚本(script-base.sh)
#!/bin/sh echo "Hello World"
加密您的脚本(提供密码):
openssl enc -e -aes-256-cbc -a -in script-base.sh > script-enc
编写包装器(script-final.sh):
#!/bin/sh openssl enc -d -aes-256-cbc -a -in script-enc | sh -
运行“script-final.sh”,输入密码,脚本将运行,而无需将纯文本脚本写入磁盘。
答案3
SHC
您可以尝试本网站上概述的步骤,标题为:如何使用 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 网站上,标题为:Paranoid Penguin - shc(一个 Shell 加密实用程序)的局限性。
笔记:这类工具最好被描述为混淆器。
答案4
请使用新版本,大于4.0.0为了Ubuntu 18.04(已测试)。旧的有一个错误,有解决方法。有了新的,这个问题就解决了;)
使用以下命令
sudo add-apt-repository ppa:neurobin/ppa
sudo apt-get update
sudo apt-get install shc