for .NET应该是.NET程序员除了VS.NET以外必备的一个工具,当然你如果喜欢EditPlus一类的编辑器,甚至VS.NET也可以不用。Reflector内核版本升级非常的频繁,不过它的一个和重要的功能,获得反编译代码文件的功能却是一个叫Reflector.FileDisassembler的插件提供的。昨天反编译一个混淆过的assembly,发现了它的一个bug。
混淆对变量、类和名称空间的重命名,一般有两种主要的方案:一是简化方案,把能替换的symbol都换成尽可能简单的字符,从a开始,把大小写的字母排完,然后aa、ab、...、ZZ,再aaa;另一总方案是,把能替换的symbol都换成很复杂的一个随机字符串,足有10个以上的字符,其代表是XenoCode。对于使用第一种重命名方案的混淆器混淆后的结果,很容易出现名称空间叫a和A,类名叫a和A的情况。

。
。修复这个bug很简单,修改了一下CreateFile方法,同时添加了一个GetUniqueFileName方法,源代码如下:
代码在回复中,贴上代码怎么也不能成功发帖
本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。