[C#在受保护的zip文件中运行EXE

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

我已将我的应用程序exe文件压缩为受密码保护的.zip存档。现在,我想从另一个应用程序运行该应用程序。

如何让其他应用程序运行压缩文件?

c# zip exe archive protected
1个回答
0
投票

这似乎是X Y problem。可以使用受密码保护的文件进行复制保护,但不是最佳方法:

  1. 文件的密钥需要通过硬件编码到程序中。有多种方法可以对此进行混淆,但这不能保证。
  2. 您可能需要将可执行文件解压缩到一个临时目录,或者做一些额外的工作来将应用程序解压缩到内存并从那里运行它。如果从内存中解压缩,则可以使用Assembly.Load传输执行,而无需启动新进程。参见how to load assembly from memory。或者,您可以尝试@KlausGütter建议的方法并启动load an exe from memory
  3. 即使从内存中加载程序集,用户仍然可以使用调试器或内存转储来提取程序。

对我来说,与copy protection的常规方法相比,这似乎有点复杂。即使用非对称加密来编码某些数据。在应用程序启动时加载此数据,并验证它是否正确。这样,用户无法发现加密密钥。他仍然可以编辑程序以删除检查,但这无法避免。

您可以在数据中包含machine specific id以将许可证锁定到机器。您也可以使用某种在线激活来验证密钥的正确性。您还可以使用各种混淆产品,以使您的代码更难以逆向工程。

请记住,绝对保护是不可能的。尽一切努力使绕过复制保护的成本高于购买保护的成本。我想说,对于大多数产品,防止随意复制就足够了。

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