Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net NET中的模糊处理:它是如何完成的?它有多安全?_.net_Security_Reflection_Obfuscation - Fatal编程技术网

.net NET中的模糊处理:它是如何完成的?它有多安全?

.net NET中的模糊处理:它是如何完成的?它有多安全?,.net,security,reflection,obfuscation,.net,Security,Reflection,Obfuscation,我提出了一个关于模糊处理的观点,有人回答说“模糊处理不会停止太多” 我不想在那里的评论中展开辩论,而是想让社区认真回答,当使用X、Y或Z模糊器进行模糊处理时,我的代码有多安全,以及是否有任何模糊处理工具真正完成了这项工作 我还对任何解释感兴趣,这些解释可以让我对模糊器的工作原理有一些基本的了解 据我所知,模糊处理不能阻止反射和检测方法等,但它通过扭曲变量名使方法中的代码可读性降低。这不对吗?它还能做什么?模糊处理永远不会是真正安全的,因为它总是可以查看MSIL。即使有一个好的模糊处理程序,人们也

我提出了一个关于模糊处理的观点,有人回答说“模糊处理不会停止太多”

我不想在那里的评论中展开辩论,而是想让社区认真回答,当使用X、Y或Z模糊器进行模糊处理时,我的代码有多安全,以及是否有任何模糊处理工具真正完成了这项工作

我还对任何解释感兴趣,这些解释可以让我对模糊器的工作原理有一些基本的了解


据我所知,模糊处理不能阻止反射和检测方法等,但它通过扭曲变量名使方法中的代码可读性降低。这不对吗?它还能做什么?

模糊处理永远不会是真正安全的,因为它总是可以查看MSIL。即使有一个好的模糊处理程序,人们也可以简单地从MSIL复制大部分代码,因为你别无选择,只能编译到MSIL,所以你真的无能为力。

有很多方法可以做到这一点-例如,你有没有试过在自己身上运行Reflector

最终,如果你有商业软件,不管人们是否能看到源代码,他们都会为获得一个受支持的版本而付费——这就是许多开源项目赚钱的原因。混淆基本上就是它所说的-它使代码更难理解,但实际上并没有隐藏它。这是否值得,你必须根据具体情况来判断


如果你是在向公司客户销售软件,我的观点是不值得这么麻烦。如果你是在向零售客户销售,并且真的想隐藏代码,那么也许.NET不是答案。

-

如果有人愿意为你的程序付出足够的努力,那么再多的混淆也不会改变这一点。我认为可以很好地总结一下:

你无法完全保护你的应用。 谢天谢地,你真的不想这么做。 以我的经验,你需要确保 你的应用程序足以让某人 不能不小心盗用你的电脑 产品,没有更多

Wikipedia有一个相当不错的部分,特别是他们通过一个例子,让你了解发生的步骤:

  • 暂时重写。使用 特殊值
  • 更改迭代 陷入递归
  • 模糊 结构与无意义变量 名称
  • 删除中间值 变量和文字
  • 混淆 名称再次
  • 删除文字
  • 删除冗余文本


    这是我在ISSA杂志上发表的一篇关于“”的文章——这是一个PDF文件,但它涵盖了模糊处理和一些相关技术。更重要的是,它涵盖了降低这些风险的过程,以及如何将上述所有风险与这些风险的重要性与您的具体情况相结合的一些建议。

    ObLink:Security与混淆无关。“我希望社区认真回答,当使用X、Y或Z模糊处理时,我的代码有多安全”模糊处理提供的安全性总是为零或更少(“在模糊处理有bug的情况下,更少”)并且使代码比以前更不安全)。