天天看點

Reflector.FileDisassembler的一個bug

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的情況。

Reflector.FileDisassembler的一個bug

Reflector.FileDisassembler的一個bug

。修複這個bug很簡單,修改了一下CreateFile方法,同時添加了一個GetUniqueFileName方法,源代碼如下:

     代碼在回複中,貼上代碼怎麼也不能成功發帖

本文轉自部落格園鳥食軒的部落格,原文連結:http://www.cnblogs.com/birdshome/,如需轉載請自行聯系原部落客。 

繼續閱讀