反編譯的方式有不少種,其實最靠譜的仍是IL反編譯。html
若是不懂IL能夠嘗試我這邊文章入門:http://www.wxzzz.com/278.html工具
不過我下面要說的不是IL這種底層的代碼反編譯,而是Reflector中的Reflexil插件進行反編測試
也許有人會說Reflector不就是反編譯了麼,爲何還要用Reflexil這個插件? Reflector 僅僅是反編譯出源碼給你看,並不能在修改後編譯回去。因此咱們須要使用Reflexil這個插件進行反編譯回去。flex
這裏順便介紹下我所知道的三種反編譯回去的方式:spa
在此以前你須要先去下載Reflector和Reflexil插件,這些你能夠去百度或谷歌上面下載到。(若是你不會…那下面的文章不用看了)插件
下載好以後首先安裝Reflector程序,安裝完畢後在把Reflexil插件放到Reflector程序目錄下面(實際上是個dll文件而已),以下圖所示code
而後打開Reflector,在工具欄依次點擊 Tools
-> Add-Ins...
,以下圖所示orm
而後在彈出的界面中點擊+號選擇剛剛拷貝到Reflector中的Reflexil插件的dll文件,以下圖所示htm
而後點擊Close ,此時程序的 Tools 欄目下已經有了 Reflexil 插件選項。get
本文反編譯一個Winform程序(固然,你也能夠反編譯.NET 的其餘 dll 文件),程序以下所示:
圖
代碼
咱們把這個exe程序進行反編譯吧
首先在Reflector工具欄中依次點擊 Tools
-> Reflexil
打開 Reflexil 的窗口,以下圖所示
而後打開你要反編譯的程序集,咱們編譯本身寫的Winform的exe程序做爲測試吧,以下圖所示。
而後咱們選中咱們要反編譯的方法,在Reflexil插件中進行反編譯,以下圖所示。
能夠直接在「你好」的那一欄進行點擊右鍵選擇 「Edit」 進行直接的編輯
也能夠在圖中的這個選項卡( Instructions ) 中的表的任意一欄點擊右鍵選擇,以下圖所示
你能夠直接
Edit
編輯單個文本,也能夠Replace all with code...
編輯整個class的內容。
若是你選擇的是Replace all with code...
來編輯整個內容的話,你須要在編輯完成後,在界面的左下角點擊Complile
作編譯操做。
可是彷佛這個插件的編輯整個class的功能有缺陷,有些代碼識別不出來。因此仍是看狀況使用吧,若是Replace all with code..
不行,就直接選 Edit 編輯咱們所選的內容便可。 我這裏將「你好」 修改成 「你好,歡迎訪問個人博客,www.wxzzz.com」。以下所示
最後一步操做,依次在Reflector項目中點擊右鍵
-> 選擇 Reflexil
-> 選擇 Save as..
保存便可,這樣就完成了修改代碼,編譯成功。如圖
哈哈,反正看圖不看文字應該也能夠直接結束這篇文章。
如下是我反編譯以後的程序下載地址,你能夠做爲練習再次反編譯:TestWinform.Patched