我正在开发专有软件,该软件将以.exe文件的形式分发。为了使用它,用户将必须使用其白名单凭据(用户名+密码)进行身份验证。
[我所遇到的问题是,在我所销售的行业中,有很多“黑客”将试图反编译可执行文件,获取源代码并将其免费分发给其他人。
为了对抗这些反向工程的尝试,我试图混淆我的代码并使用各种编译器,但到目前为止没有成功。
我尝试过的事情:
py2exe
编译器:“黑客”成功在一个小时内反编译了可执行文件。pyinstaller
编译器:与py2exe
相同。pyminifier
混淆代码:“黑客”设法使代码混淆。Oxyry Python Obfuscator
:与pyminifier
相同。那些设法对我的程序进行反编译和模糊处理的人解释说,上述4种工具的开源性质意味着它们的算法是众所周知的,并且有解决方案可以对使用这些开源软件的程序进行逆向工程编译器和混淆器。
我还没有尝试的内容:
Pyarmor
混淆我的代码。我听说它很好,但是它要花50美元,所以在购买许可证之前,我想确保它是最好的混淆工具。Cython
库为我的程序创建一个C-wrapper,使其使用C而不是Python进行编译。由于C二进制代码很难阅读,因此会使程序更难以反编译。但是,我从来没有用C编程过,我想知道是否有更好的方法来编译我的源Python代码,而无需学习C。我不打算尝试:
[还请考虑,如果“黑客”能够在不访问源代码的情况下禁用白名单系统,那么他将能够无限制地将其分发给其他用户。因此,我正在寻找一种方法,该方法不仅将使反编译程序变得极其困难,而且几乎不可能与二进制文件混为一谈并关闭程序代码的某些部分。
我想我会很勇敢地回答:可以采取没有技术手段来防止最终用户计算机上运行的软件被破解。
您可能会加大难度,但是既然您已经说过,在这个市场上,人们总是宁愿不惜一切代价使用破解软件而不是合法产品,在这种情况下,您基本上无望获胜:如果您确定了盗版者,他们将赢得Every time。
所以:你不能;放弃
对不起:-(