欢迎光临 Rick 's BLOG
日志首页  | C# .Net编程  | 原创作品  | 生活点滴  | C\C++相关  | 多媒体相关※ERMP  | VB相关  | 其它运维与编程  |  留言簿
买烟(古龙版) .Net 加密原理,HVM核心的实现原理(八)
未知  .Net的混淆属性以及ildasm限制的简单解除方法
[ 发布日期:17年前 (2007-11-15) ]   [ 来自:rick@博客园 ] [分类:原创作品]
.Net 2.0开始提供了两个混淆相关的属性,ObfuscationAttribute 和 ObfuscateAssemblyAttribute 。
为开发者提供一种批注二进制文件的方法,以便混淆处理工具能够使用最少的外部配置正确处理这些二进制文件。

混淆处理工具就处理每个对象时就需要判断这个对象是否有这样的属性,如果有还需要把属性的参数值读取出来。然后进行相应处理。
 
我在做这个时一时手误写错了一个字符,导致程序总是不能正确处理,混淆属性。
在处理属性时我们只能通过“名称”这个唯一的特征去匹配,拼写错误自然就找不到了。

这让我联想到了 net 2.0 提供的另一个新属性:SuppressIldasmAttribute。
将 SuppressIldasmAttribute 属性应用于程序集或模块可防止使用 MSIL 反汇编程序 (Ildasm.exe) 反汇编程序集或模块。

根据前面的教训,如果ildasm中把 SuppressIldasmAttribute 这个属性名字拼写错了会怎么样呢?
显然,微软的开发员并没有把它拼写错。

那我们用编辑器打开 ildasm.exe 搜索 “SuppressIldasmAttribute”,然后人为的让它拼写错误试试。



呵呵,就是破坏掉ILDASM检查该属性嘛,也就是修改后的ILDASM可以打开任意程序集,不管有没有使用这个属性禁止打开
引用通告地址 (0):
复制引用地址https://www.rickw.cn/trackback/214
复制引用地址https://www.rickw.cn/trackback/214/GBK
[ 分类:原创作品  | 查看:4217 ]

暂时没有评论,快来发表一个评论吧。
发表评论
作者:   用户:[访客] 
评论:

表  情
禁止表情 | 禁止UBB | 禁止图片 | 识别链接
对不起,你没有权限上传附件!
验证:
 
PoweredBy R-Blog V1.00 © 2004-2024 WWW.RICKW.CN, Processed in second(s) , 7 queries    京ICP备17058477号-5