为开发者提供一种批注二进制文件的方法,以便混淆处理工具能够使用最少的外部配置正确处理这些二进制文件。
混淆处理工具就处理每个对象时就需要判断这个对象是否有这样的属性,如果有还需要把属性的参数值读取出来。然后进行相应处理。
我在做这个时一时手误写错了一个字符,导致程序总是不能正确处理,混淆属性。
在处理属性时我们只能通过“名称”这个唯一的特征去匹配,拼写错误自然就找不到了。
这让我联想到了 net 2.0 提供的另一个新属性:SuppressIldasmAttribute。
将 SuppressIldasmAttribute 属性应用于程序集或模块可防止使用 MSIL 反汇编程序 (Ildasm.exe) 反汇编程序集或模块。
根据前面的教训,如果ildasm中把 SuppressIldasmAttribute 这个属性名字拼写错了会怎么样呢?
显然,微软的开发员并没有把它拼写错。
那我们用编辑器打开 ildasm.exe 搜索 “SuppressIldasmAttribute”,然后人为的让它拼写错误试试。
呵呵,就是破坏掉ILDASM检查该属性嘛,也就是修改后的ILDASM可以打开任意程序集,不管有没有使用这个属性禁止打开