对于我的主要软件产品,我创建了一个'keygen‘,它显然能够生成密钥并进行验证。这是一个‘逻辑’的关键,我不想使用它作为web服务(我不想强迫用户有一个互联网连接,以重新设计软件)。出于这些原因,我需要用像Dotfuscator这样的东西来混淆它,但是如果混淆了,我的项目就会失去一些很酷的东西,比如与.Net产品(ClickOnce)捆绑在一起的自动更新。
那么我的第一个问题是:是否可以将keygen创建为.dll,混淆它并在非混淆的软件中使用它?
如有,则:
如否:
确切地说,你的种族是什么?谢谢你的帮助,请原谅我糟糕的英语:-)
发布于 2015-04-22 21:46:36
.NET混淆的问题是,任何对CIL有相当中等理解( C#编译成的)的人都会发现任何混淆都是相当容易通过的,即使他们无法通过混淆--如果内存没有得到适当的保护--他们就可以在整个程序的操作过程中监视内存的变化。
任何真正想进入你的项目的人都会。对于本地应用程序也是一样的。
尽管如此,如果您想用反射器保护自己不受普通脚本的影响,然后将keygen编译成dll并将dll单独混淆,就足以防止有人发现您的密钥生成算法并使用它创建keygen,然而,这仍然使他们有可能修补您的应用程序,从而在一定程度上防止应用程序的混淆。
总结一下:如果您想阻止普通用户创建keygen编译并将您的keygen混入dll,那么如果您想防止keygen和修补程序混淆的人,请将keygen保存在解决方案中并将其混淆。
https://stackoverflow.com/questions/29809321
复制相似问题