c#dll混淆与整个项目混淆

时间:2015-04-22 21:36:29

标签: c# dll dotfuscator

对于我的主要软件产品,我创建了一个' keygen'这显然能够生成密钥并进行验证。这是一个“逻辑”。 keygen,我不想将它用作网络服务(我不想强迫用户通过互联网连接来注册软件......)。 我需要使用像Dotfuscator这样的东西对它进行模糊处理,但如果我的项目混淆了一些很酷的东西,比如捆绑了.Net产品的自动更新(ClickOnce)。

然后我的第一个问题是:可以将keygen创建为.dll,对其进行模糊处理并在非混淆软件中使用它吗?

如果是:

  1. 我是否可以继续使用ClickOnce和其他非obuscation优势?
  2. 单个(和小的).dll的混淆与整个项目的混淆是否会让黑客更容易破解keygen?
  3. 如果否:

    1. 单个(和小的).dll的混淆与整个项目的混淆是否会让黑客更容易破解keygen?
    2. 明确地说,你的成果是什么?对于任何帮助都有很多帮助,请原谅我糟糕的英语: - )

1 个答案:

答案 0 :(得分:1)

.NET混淆的问题在于,任何对C#编译成CIL有相当中等理解的人都会发现任何混淆都很容易通过,即使他们无法获得通过混淆,如果内存没有得到妥善保护,他们可以在整个程序运行过程中监控内存的变化。

任何真正想要加入您的计划的人都会 。对于本机应用程序也是如此。

如果你想保护自己免受普通脚本小孩的反射,那么将keygen编译成dll并单独模糊dll就足以防止发现你的密钥生成算法并使用它来创建密钥生成但是,这仍然使他们有可能修补您的应用程序,这会在某种程度上阻止混淆。

总结一下:如果你想阻止一般人创建一个keygen编译并将你的keygen混淆到一个dll,如果你想阻止一个keygen和人们修补你的程序混淆,保持keygen在解决方案中并混淆