网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
使用ObfuscationAttribute防止混淆工具自动模糊处理
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式

  在Reflection的强大和Reflector的盛行下,.NET产品的内部实现越来越透明,在恶意用户和Cracker面前,基本上已是砧板上的肉,被切到什么程度只能祈祷遇到的都是钝刀子;于是一批批的混淆工具应声而出,虽然他们的实现机制可能不同,但是都相同的是,使用这些工具的时候,需要为对应要混淆的产品写相当不简单的配置文件,里面描述哪些需要加密,哪些需要排除。那么,有没有办法在Assembly里就让工具知道某些地方不做混淆呢?
    答案肯定是有办法了!Microsoft在设计.NET时就考虑到混淆了,并暴露出System.Reflection.ObfuscationAttribute和System.Reflection.ObfuscateAssemblyAttribute,并建议(仅仅是建议,没有要求,所以这个不是万能的)混淆工具提供商对它们提供支持。目前大多数的混淆工具提供商都支持了它们(不知道有哪个没有支持,如果你知道,欢迎提出),下面就对这两个Attribute的使用做简单的展示。
    为了说明必要,先拉出我们的测试code来:
 1public class Type1
 2{
 3    public void MethodA() { }
 4    public void MethodB() { }
 5}
 6
 7public class Type2
 8{
 9    public void MethodA() { }
10    public void MethodB() { }
11}    编译之后使用IDE自带Dotfuscator做加密,注意这里在Rename配置页里面什么也不做,在Input配置页里选中Honor Obfuscation Attributes,然后就保存并Run,很快看到输出结果,发现所有的类和方法都加密了。
    修改Code如下,添上ObfuscationAttribute,代码如下,这里我希望Type1的MethodA方法不混淆,Type2的名字不被混淆,但其他的都自动混淆,到底能不能做到呢?
 1[assembly: ObfuscateAssemblyAttribute(true)]
 2
 3public class Type1
 4{
 5    [ObfuscationAttribute(Exclude = true)]
 6    public void MethodA() { }
 7    public void MethodB() { }
 8}
 9
10[ObfuscationAttribute(Exclude = true, ApplyToMembers = false)]
11public class Type2
12{
13    [ObfuscationAttribute(Exclude = false, Feature = \"default\",
14        StripAfterObfuscation = false)]
15    public void MethodA() { }
16    public void MethodB() { }
17}这里用到了ObfuscateAssemblyAttribute和ObfuscationAttribute,偶从MSDN摘取了它们的功能说明: [Page]
ObfuscateAssemblyAttribute:指示模糊处理工具对适当的程序集类型使用其标准模糊处理规则。
ObfuscationAttribute:指示模糊处理工具对程序集、类型或成员采取指定的操作。
备注:
ObfuscationAttribute 和 ObfuscateAssemblyAttribute 属性使得程序集作者可以批注二进制文件,以便模糊处理工具能够使用最少的外部配置正确处理这些二进制文件。 
重要事项:  
应用此属性不会自动模糊处理该属

  • 下一篇资讯: 应用程序集的安全声明
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号