如何加密或使我的 shell 脚本不可读?

如何加密或使我的 shell 脚本不可读?

如何加密或扰乱我的 shell 脚本,使其肉眼无法读取?任何一种方法都可以,请提供具体步骤。

答案1

如果要加密 shell 脚本,请使用GPG。谁想要运行你的脚本当然必须先解密它。

如果您希望某人能够运行脚本但不能读取它,那么这是一个完全不同的问题,与加密无关。它被称为混淆

如果您在该脚本中有密码或其他机密信息,那么再多的混淆也无法隐藏它。脚本迟早会使用密码来执行某些操作,此时密码将清晰地显示给任何寻找它的人。

如果您因为担心有人复制而想隐藏脚本的工作原理,那就别想了。没人在乎。

如果您因为对其质量感到羞耻而想隐藏脚本,请修复它。

如果您想隐藏脚本的工作原理,因为您想隐藏它的功能,这是不可行的。有人可以在执行脚本时查看它并观察它正在做什么。

如果您已经读了这么多,但仍然想“加密”您的脚本,那么您就误解了一些重大内容。不要将您的脚本发送给任何人,或以纯文本形式发送。

答案2

在搜索互联网时得到了这个,由 Claudio P. 提供。

  1. 编写您的脚本(script-base.sh)

    #!/bin/sh 
    echo "Hello World" 
    
  2. 加密您的脚本(提供密码):

    openssl enc -e -aes-256-cbc -a -in script-base.sh > script-enc 
    
  3. 编写包装器(script-final.sh):

    #!/bin/sh 
    openssl enc -d -aes-256-cbc -a -in script-enc | sh - 
    
  4. 运行“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

相关内容