保护在Python上运行的.exe程序源代码的最佳方法?

问题描述 投票:1回答:1

我正在开发专有软件,该软件将以.exe文件的形式分发。为了使用它,用户将必须使用其白名单凭据(用户名+密码)进行身份验证。

[我所遇到的问题是,在我所销售的行业中,有很多“黑客”将试图反编译可执行文件,获取源代码并将其免费分发给其他人。

为了对抗这些反向工程的尝试,我试图混淆我的代码并使用各种编译器,但到目前为止没有成功。

我尝试过的事情:

  • 使用py2exe编译器:“黑客”成功在一个小时内反编译了可执行文件。
  • 使用pyinstaller编译器:与py2exe相同。
  • 使用pyminifier混淆代码:“黑客”设法使代码混淆。
  • 使用Oxyry Python Obfuscator:与pyminifier相同。

那些设法对我的程序进行反编译和模糊处理的人解释说,上述4种工具的开源性质意味着它们的算法是众所周知的,并且有解决方案可以对使用这些开源软件的程序进行逆向工程编译器和混淆器。

我还没有尝试的内容:

  • 使用Pyarmor混淆我的代码。我听说它很好,但是它要花50美元,所以在购买许可证之前,我想确保它是最好的混淆工具。
  • 使用Cython库为我的程序创建一个C-wrapper,使其使用C而不是Python进行编译。由于C二进制代码很难阅读,因此会使程序更难以反编译。但是,我从来没有用C编程过,我想知道是否有更好的方法来编译我的源Python代码,而无需学习C。

我不打算尝试:

  • 完全使用Python以外的语言重写我的整个程序。我不擅长其他语言,而且该程序本身包含1000余行代码,因此我不能仅仅为了使其更难于反编译而完全重写它。
  • 使程序开源:这是一个营利性软件,因此,我不会发布专有代码,谢谢您的理解。
  • 使该程序成为Web应用程序:由于我的程序直接与用户PC上的文件交互,因此我无法使其基于Web,因此它必须位于用户PC上。

[还请考虑,如果“黑客”能够在不访问源代码的情况下禁用白名单系统,那么他将能够无限制地将其分发给其他用户。因此,我正在寻找一种方法,该方法不仅将使反编译程序变得极其困难,而且几乎不可能与二进制文件混为一谈并关闭程序代码的某些部分。

python c compilation exe obfuscation
1个回答
0
投票

我想我会很勇敢地回答:可以采取没有技术手段来防止最终用户计算机上运行的软件被破解。

您可能会加大难度,但是既然您已经说过,在这个市场上,人们总是宁愿不惜一切代价使用破解软件而不是合法产品,在这种情况下,您基本上无望获胜:如果您确定了盗版者,他们将赢得Every time

所以:你不能;放弃

对不起:-(

© www.soinside.com 2019 - 2024. All rights reserved.