如何锁定终端ran perl、obj c、c+的源代码+;,python、ruby等脚本?

如何锁定终端ran perl、obj c、c+的源代码+;,python、ruby等脚本?,python,linux,perl,terminal,Python,Linux,Perl,Terminal,我想在Perl、Objc、C++、Python、Ruby、Bash、PHP等中销售我所编写的脚本< 它们都是在终点站运行的。(Linux) 如何锁定源代码,以便在没有人访问源代码的情况下分发脚本 换句话说,如果代码下载到他们的Linux机器上,但他们无法访问实际的源代码,那么如何锁定在终端中运行的程序的源代码,以便人们可以使用该程序 例如: pl是保存在Linux计算机上的文档,可以通过终端激活。但是,如果用户单击实际的example.pl文档,他们可以看到实际的代码。是否可以锁定此文档,但仍允

我想在Perl、Objc、C++、Python、Ruby、Bash、PHP等中销售我所编写的脚本< 它们都是在终点站运行的。(Linux)

如何锁定源代码,以便在没有人访问源代码的情况下分发脚本

换句话说,如果代码下载到他们的Linux机器上,但他们无法访问实际的源代码,那么如何锁定在终端中运行的程序的源代码,以便人们可以使用该程序

例如:
pl是保存在Linux计算机上的文档,可以通过终端激活。但是,如果用户单击实际的example.pl文档,他们可以看到实际的代码。是否可以锁定此文档,但仍允许用户在终端内运行程序?

不,不可以。如果计算机能读,用户也能读。你能做的最好的事情就是模糊处理——你可以查找你的特定语言,但是也没有完美的模糊处理。只需去掉所有空格,将所有标识符更改为单个字母,并在其上添加许可证。

可以在不分发源代码的情况下分发程序。但这并没有实现任何目标。用户可以重新生成等效的源代码,允许他复制您的部分代码、使用您的部分代码或确切了解您的代码的功能。我相信其中一个或所有这些都是你的实际目标。

简短的回答:不用麻烦了。这在技术层面上实际上是不可能的。相反,让律师起草一份好的软件许可证,防止客户重新分发您的代码,并让他们在您的销售合同中签字

然后,当你的客户的侄子在大学里意识到你的应用程序是一个Perl脚本,写了一个替换程序,并在Github上免费发布时,你就哭了


悲伤,但真实。今天,我不可能试图围绕销售容易克隆的软件来建立业务。例如,想想iTunes应用商店中有多少几乎相同的应用程序,而且(大概)这些开发人员从来没有看到过他们竞争对手的代码。

我认为混淆不是唯一的方法,我有使用backtrack 5的经验,据我所知,基于终端的程序可以锁定源代码,比如sqlmap。py@henrymb67不。minitech是完全正确的:如果电脑能阅读,你的用户也能阅读。数字限制管理在数学上是不可能的。@henrymb67,不,不是源代码。例如,您将无法返回注释和格式。不过,你可以为世界上的任何程序生成源代码。对于脚本语言,模糊处理是你能做的最好的方法。对于编译语言(例如C++、ObjuleC),如果不希望用户读取源代码,通常会分发二进制文件。有些语言(例如Python C++)也可以编译成字节码,这也不是人类可读的。@ HyrMyb67 Objc和C++。当然最终得到的是已编译的机器语言目标代码。但即便如此,您也可以将这些符号反编译回人类可读的内容。如果可以通过优化编译器运行像C这样固有的模糊处理,那么任何Perl/Python/Ruby/Bash/PHP模糊处理几乎都是微不足道的。如果你怀疑我,想想几乎所有的商业应用程序都是可用的,破解,在互联网上。我的意思是:在数学层面上,你所希望的是不可能的。非常感谢你,ikegami。。。我该怎么做?做什么?我已经解释过了,它没有实现你的任何目标。啊,是的。。。没有意识到它仍然没有实现任何东西。你是否考虑用GPRv3免费发布软件?然后,您将销售支持,而不是许可证!