如何压缩 .NET 应用程序的资源

逆向工程 反编译 开箱 编译器
2021-06-22 18:22:04

我是一名 Windows 应用程序开发人员,我会构建一些 .NET 应用程序,我可以看到破解我的应用程序的资源非常容易,甚至一些简单的应用程序(如资源编辑器)只需删除注册对话框即可破解我的应用程序框使我的应用程序成为免费软件,而无需正确的许可证密钥。

是否有任何.EXE压缩器或任何其他工具可以用来保存我的应用程序资源以及我的脚本,任何人都可以建议我如何避免重新编译我的脚本。任何帮助将不胜感激。

3个回答

真正保护资源的想法是不可能的——你实施的每一个保护都可能而且将会被打破。假设这一点,并且不要在您的资源/代码中放置凭据或私有数据。

资源加密/压缩背后的想法在这篇 codeproject 文章中得到了很好的总结,同样的想法也适用于 .NET。您使用某种加密方法,将加密文件添加到您的项目中,通过您的代码加载它,并在其上运行您的解密/解压算法。

但实际上,听起来您正在寻找具有压缩功能的 .NET 混淆器。我不相信 stackexchange 是产品广告的地方,所以这里有一个很好的客观列表:http : //en.wikipedia.org/wiki/List_of_obfuscators_for_.NET

为了使破解您的应用程序更加困难,您应该考虑使用此处描述的非对称加密和许可证密钥文件。想想在整个应用程序中执行许可证检查的创造性方法。使用密钥文件可以防止任何人为您的应用程序编写密钥生成器的可能性,并且为许可证添加大量检查将使试图破解应用程序的任何人变得困难。

  • 如果您的目标是防止有人篡改您的 .NET 应用程序二进制文件,那么 .NET 提供了一个解决方案:对您的程序集进行签名(“强名称”)此过程使用非对称密钥和校验和,加载程序会注意到对已签名程序集的任何更改并拒绝加载它们。

  • 如果您的目标是防止人们反编译(查看)您的代码,则您需要一个代码混淆工具。

如果您正在寻找免费软件工具来压缩您的资源并确保您的脚本安全,那么我建议您使用 Confuser

这是一个免费软件应用程序,您甚至可以下载其源代码。