如何防止sdxkit解开TCL源代码

时间:2013-09-17 08:42:38

标签: tcl starkit

我正在使用sdxkit来包装我的源代码

$ ./sdx wrap Project

但是我可以轻松地打开它:

$ ./sdx unwrap Project

它将返回我的整个源代码。如何防止将代码打包回来? sdxkit提供的任何参数或选项?

1 个答案:

答案 0 :(得分:2)

推荐用于防止提取的唯一技术是“ Tcl字节码编译器”,它是ActiveState商业产品TclDevKit的一部分。 “编译器”来自TclPro代码库的其他一些衍生产品,但据我所知,它们并未更新为支持Tcl 8.5及更高版本。结果通常被打包成一个starkit;你可以使用sdx来提取已编译的代码,但它并没有真正帮助那么多。

尽管称为编译器,但它不是;它实际上是一个字节码序列化程序,它使用一种相对耐受反汇编的相当奇怪的格式(和相反的字节码加载器 - tbcload - 标记代码以防止一系列意外和故意的信息泄漏)。使用的实际编译器与Tcl中内置的编译器相同。实际上,从Tcl源编译字节码实际上更快比用tbcload加载它...

请注意,这个代码没有真正的开源版本,并且没有真正的兴趣来生成一个:对于开源代码 - 或纯粹的内部部署 - 没有必要更深入地模糊;您是否应该希望代码是开放的(开源是开源的!)或者您只是为了方便部署而打包并阻止人们意外破坏。唯一真正的价值是在您部署商业代码不受信任的用户的情况下,然后应该在使用法律措施来防止问题的情况下查看代码的覆盖。简而言之,如果您不销售代码(或密切相关的服务),您可能不想要“编译器”;如果你不是需要来覆盖代码,那么在starkit(或starpack)中打包就足够了。如果你需要遮挡,你也可以证明商业工具的成本是合理的。