彩票走势图

混淆器原理及其重要性

原创|其它|编辑:郝浩|2011-01-05 16:07:49.000|阅读 1175 次

概述:我们知道.NET程序集中有一个重要特性叫做MetaData(元数据),它是.NET的特性,它记录了相关程序集的一切信息,正因为这样的特性,.NET程序集才有了跨平台的可能,才可以在网上传送运行,才不会出现DLL HELL。但同时,由于它记录了所有的信息,使得程序集中的信息可以完全还原至初始状态,使得编译过后的程序集,依然拥有良好的“可读性”。在某些特殊的情况下,这是一件很糟的事情。对此,我们该怎么做?正在这样的需求之下,混淆器横空出世。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

  我们知道.NET程序集中有一个重要特性叫做MetaData(元数据),它是.NET的特性,它记录了相关程序集的一切信息,正因为这样的特性,.NET程序集才有了跨平台的可能,才可以在网上传送运行,才不会出现DLL HELL。但同时,由于它记录了所有的信息,使得程序集中的信息可以完全还原至初始状态,使得编译过后的程序集,依然拥有良好的“可读性”。在某些特殊的情况下,这是一件很糟的事情。对此,我们该怎么做?正在这样的需求之下,混淆器横空出世。它对MetaData的某些相关信息进行了处理,达到了混淆的作用,在某种意义上讲,它的确能起到一些作用。 

  什么是混淆

  故名思意,就是混杂,使界限不分明。这个词相当妙,特别是用在计算机界。

  混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义。被混淆过的程序代码,仍然遵照原来的档案格式和指令集,执行结果也与混淆前一样,只是混淆器将代码中的所有变量、函数、类的名称变为简短的英文字母代号,在缺乏相应的函数名和程序注释的况下,即使被反编译,也将难以阅读。同时混淆是不可逆的,在混淆的过程中一些不影响正常运行的信息将永久丢失,这些信息的丢失使程序变得更加难以理解。

  简单的说,混淆就是将名称混淆,即将命名空间名、类名、方法名、字段名等统统换成特殊符号或其它符号,目的就是让你不能与以前的名称建立关联。达到把你弄糊涂的目地。

  当然,混淆器的作用不仅仅是保护代码,它也有精简编译后程序大小的作用,使编译后文件体积大约能减少25% ,这对当前费用较贵的无线网络传输是有一定意义的。


(慧都控件网版权所有,转载请注明出处,否则追究法律责任)


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP