Reflector特別版是一款非常實用的.net反編譯工具。Reflector中文版是由微軟員工Lutz Roeder編寫,你可以瀏覽程序集的類和方法,分析程序集并向你展示它的所有秘密。
Reflector綠色官方版的主要用途其實就是進行兩種編程語言之間的轉換,在.NET編程過程中,對語言的反編譯是非常有難度也很麻煩的事情,而軟件就很好地解決了這一問題,正好有編程方面需求的小伙伴們,可以在本站下載Reflector漢化版試試喲~
Reflector綠色官方版能夠將C#, Visual Basic 和 IL程序反編譯成匯編程序進行分析查看。即使沒有用在反編譯領域,也常常被用來檢查程序集的命名規范,命名空間是否合理,組織類型的方法是否需要改善等方面?上,Reflector很早就轉向收費軟件了,需要購買許可才可以使用。對于那些恥于用盜版的朋友,通常會選擇放棄。小編這里給大家帶來免費注冊版本供大家體驗,誰叫大家一提到.NET反編譯,Reflector常常是默認的首選工具呢!
.NET 框架向全世界引入了可用來分析任何基于 .NET 的代碼(無論它是單個類還是完整的程序集)的反射概念。反射還可以用來檢索有關特定程序集中包含的各種類、方法和屬性的信息。
全面支持.NET 2.0、.NET 3.0、.NET 3.5和.NET 4.0Windows Shell集成–運行Reflector.exe /寄存器,注冊文件擴展名NET 2.0、.NET 3.0、.NET 3.5、.NET 4.0、Compact Framework 2.0、Compact Framework 3.5、XNA框架、銀光(Silverlight)、Mono以及托管代碼Direct X的程序集列表點擊源代碼的導航
找出公開的或實例化的類型
擴展方法
Linq查詢表達式支持
Lambda表達式支持
匿名方法和可空類型支持
擴展方法支持
上下文相關的文檔視圖
找出虛擬方法重寫
代碼URL支持——在瀏覽器中導航至代碼:/ / mscor lib / system.object挖掘程序集中的資源
1.下載安裝原程序,然后運行 Reflector.exe
2.運行注冊機,點擊 Generate 獲得序列號
3.把序列號填寫到 Reflector 軟件上
4.斷開網絡,點擊 Activate 激活
5.提示說無法連接服務器,點擊手動激活 Manually Activate
6.拷貝 Reflector 左側的一大堆請求字符串,粘貼到注冊機左側框框,會自動計算注冊碼
7.拷貝注冊機右側的注冊信息,粘貼到 Reflector 右側,激活完成
8.激活之后,最好關閉自動更新之類的設置!
.NET Reflector開發人員可以使用它反編譯.NET代碼,以了解它是如何工作的,學習或指導.NET語言的復雜性,提供一個更好的替代庫的文檔,恢復丟失或不可用的源代碼,定位性能問題,分析依賴關系,檢查混淆
支持.NET1.0, 2.0,.NET 3.5,.NET 4.0等
還記得Spy++嗎?在Win32時代,這個軟件對于我們分析一個陌生軟件的設計思路可謂立下汗馬功勞。在如今的.NET時代,Reflector又成為每個嚴肅的.NET開發人員工具箱中必不可少的精髓工具之一。
1.從本站直接下載Reflector,解壓并運行。如下圖所示:
2.閱讀并同意Reflector軟件安裝協議,如下圖所示:
3.設置Reflector軟件安裝目錄,如下圖所示:
4.等待程序安裝完畢,點擊【Finish】即可,如下圖所示:
下載安裝Reflector,安裝好后,如下圖所示。這個也有免安裝版的。
運行軟件,會出現如下界面,如下圖:
選擇file中的open Assembly,這個表示打開選擇你需要反編譯的程序,如下圖紅色框標示:
選擇你需要反編譯的exe程序,如下圖所示,選擇好后點擊,確定。
選擇好后,在左側會出現選擇的文件,如下圖紅色框標示。
郵件exe程序,選擇export source code,這個過程表示開始反編譯了。如下圖所示:
選擇存儲源碼的路徑,如下圖所示:
點擊start,即得到反編譯源碼,如下圖所示:
枚舉問題
為了代碼可讀,可能需要花點時間查閱metadata把int值修改回枚舉值,尤其是想利用窗體設計器的,VS2008可能還不理解int值。
屬性問題
比如一個叫Names的屬性被反編譯后,可能還原為的set_Names(names),get_Names()方法,逐個替換可能很慢,可采用正則表達式整體替換。
對于set_Xxx(xxx)方法,可替換
set_{[a-z]*}/(
為
/1 = (
對于get_Xxx()方法,可替換
get_{[a-z]*}/(/)
為
/1
然后,再修復個別被誤換的方法。
委托和回調函數問題
一般會被還原為add_Xxx(MethodsName)方法,需要改為 += MethodsName
資源問題
需要使用.Net Framework SDK 下的 resgen.exe 工具,反編譯嵌入資源文件*.resources為*.resx文件,
語法為:ResGen.exe *.resources *.resx,然后將*.resx包含入項目,就會自動和同名的窗體文件*.cs關聯,如果沒有關聯可采用先排除再添加大法,一一搞定。
命名空間問題
如果需要切換到IDE的窗體設計器,而不出錯,則還需要在*.cs中添加比如System.Windows.Forms的命名空間前綴。
窗體設計器識別問題
需要把以下代碼
ComponentResourceManager manager = new ComponentResourceManager(typeof(ClassName));替換為System.ComponentModel.ComponentResourceManager
resources = new
System.ComponentModel.ComponentResourceManager(typeof(ClassName));
窗體設計器才能正常識別。
其它的還有base.FormBorderStyle = FormBorderStyle.None;
要改為
base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
還有this.components = new Container();要改為this.components = new System.ComponentModel.Container();
base.AutoScaleMode = AutoScaleMode.Dpi;改為base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
base.FormBorderStyle = FormBorderStyle.None;改為base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
1.對部分功能進行了優化
2.解了好多不能忍的bug