如何保护和编译python源代码到.so库?

时间:2012-07-11 15:48:26

标签: python compilation source-code-protection

我想保护我的python源代码,我知道没有绝对的保护可能,但仍然应该有一些方法使其难以完成或非常耗费时间。我想要

1)自动删除所有文档,评论和

2)系统地更改模块中的变量和函数的名称(混淆?),这样我可以保留一个外部接口(有意义的名称),同时变量和函数的内部名称不可能发音。

也许最好的解决方案,1)和2)多余,是跟随

3)是否有一种简单的方法将python模块编译为.so库,具有清晰的接口,其他python模块可以使用 < / STRONG>?它与使用distutils构建C和C ++扩展类似,只是源代码是python本身而不是C / C ++。我们的想法是将所有“密码”组织到模块中,编译它们,然后将它们导入到其他不被认为是秘密的python代码中。

同样,我知道一切都可以进行逆向工程,我认为从实用的角度来看,大多数普通开发人员都无法对代码进行逆向工程,即使他们能够,道德/合法/时间原因如果他们真的想要解决这个问题,会让他们三思而后行。

1 个答案:

答案 0 :(得分:3)

正如mgilson在评论中提到的,Cython可能是你最好的选择。一般来说,您可以使用它将pure-python源代码转换为已编译的扩展模块。虽然Cython的主要目的是提高性能,但使用它来实现源代码保护不应该有任何障碍。它输出的扩展模块不受任何特殊方式的限制,所以你以前可以从Python中做到的任何事情,你应该能够从Cython生成的扩展模块中做到。 Cython在支持的功能方面确实存在一些已知的限制,可能需要解决这些问题,但总的来说,它看起来非常适合为您的目的服务。