对于我的主要软件产品,我创建了一个' keygen'这显然能够生成密钥并进行验证。这是一个“逻辑”。 keygen,我不想将它用作网络服务(我不想强迫用户通过互联网连接来注册软件......)。 我需要使用像Dotfuscator这样的东西对它进行模糊处理,但如果我的项目混淆了一些很酷的东西,比如捆绑了.Net产品的自动更新(ClickOnce)。
然后我的第一个问题是:可以将keygen创建为.dll,对其进行模糊处理并在非混淆软件中使用它吗?
如果是:
如果否:
明确地说,你的成果是什么?对于任何帮助都有很多帮助,请原谅我糟糕的英语: - )
答案 0 :(得分:1)
.NET混淆的问题在于,任何对C#编译成CIL有相当中等理解的人都会发现任何混淆都很容易通过,即使他们无法获得通过混淆,如果内存没有得到妥善保护,他们可以在整个程序运行过程中监控内存的变化。
任何真正想要加入您的计划的人都会 。对于本机应用程序也是如此。
如果你想保护自己免受普通脚本小孩的反射,那么将keygen编译成dll并单独模糊dll就足以防止发现你的密钥生成算法并使用它来创建密钥生成但是,这仍然使他们有可能修补您的应用程序,这会在某种程度上阻止混淆。
总结一下:如果你想阻止一般人创建一个keygen编译并将你的keygen混淆到一个dll,如果你想阻止一个keygen和人们修补你的程序混淆,保持keygen在解决方案中并混淆