【发布时间】:2015-12-02 18:08:14
【问题描述】:
我需要编译我的 shell 脚本,因为我想保护它的源代码。我已经读过shc,但我也读到它并不完全安全,因为只要有少量知识(或大脑和谷歌),任何用户都可以“反编译”它。有没有办法编译我的脚本以使其可执行,但完全不可读且“无法编译”?
【问题讨论】:
-
没有。想一想,bash 必须能够阅读到足以理解并运行它,如果 bash 可以做到,那么人类也可以(可能使用 bash 内置的调试工具)。您可以做一些事情来混淆代码,但最多只会减慢某人的速度。
-
因为只要有少量知识(或大脑和谷歌),任何用户都可以*'反编译'*它。少量知识...用于理解反编译的 C代码?
-
我们可以永远争论小/中/大量知识的含义,但事实是,反汇编/反编译代码并弄清楚它在做什么并不难。任何人都应该依靠其难度来保护 IP 或任何海报试图保护的东西,这当然不是那么难。
-
您可以简单地使用 Perl。它在设计上是不可读的。
-
在解决这个问题之前,您应该运行
strace以查看通过调用外部程序不可避免地会泄漏多少信息。大多数 shell 脚本是 99.99% 的外部程序和 0.01% 的实际 sh。