未完成的.net組件破解

來源:互聯網
上載者:User

最近的項目裡,需要使用一個第三控制項,用來實現對xml資料的編輯功能。幾經周折終於從國外網上找到了一個叫RichWinFormSuite的控制項包,下載安裝之後就開始使用,簡單學習了一下開發範例和Demo,發現功能很豐富,介面效果也不錯,開發挺簡單,這個組件也挺小,只有1M不到的一個dll檔案。唯一的不爽是運行起來的時候會彈出許可視窗,需要點擊關閉之後才能繼續運行。

在國內網站上搜尋了一下,基本上沒有關於這個軟體的介紹,更沒有破解版,只好向搞安全方面的同學請教,希望能破解掉。

根據和同學和討論,以及從網上找的資料,找到了一個破解.net程式的方法:先將.net程式(exe或者dll)通過反射工具Reflector的FildDisassembler外掛程式將dll輸出成原始碼,然後自己組織和重新編譯。

用Reflector開啟dll之後,卻發現有些不一樣,類名和函數名變成了帶有很多數位字串,和本來的名稱變得面目全非。

這肯定是通過混淆器處理之後的dll,既然函數名和類名都變了,那通過Reflector輸出的原始碼也全是數字和字母,重新編譯了也沒用,只好找個別的思路和方法。

後來想到另一個思路:先將.net程式(exe或者dll)反編譯成IL語言,找到它彈出對話方塊的執行代碼,然後修改成其它命令,直接讓許可視窗不彈出來,再將修改後的IL代碼重新編譯成dll檔案。

為了驗證這思路的正確性,我寫先一個小程式,在程式啟動時彈出一個普通表單,編譯運行正常。

然後使用.net framework提供的工具包的ILDasm命令,輸出該檔案的IL代碼,命令如下:

ildasm /output=c:\temp\test.il ILTest.exe

執行之後,會在C盤temp目錄下產生一個test.il檔案和一個test.res檔案,以及其它資源圖片也會輸出在同一檔案夾。

使用文字編輯器找到執行的語句,然後替換成nop命令,以使程式執行空操作,儲存檔案,使用ILAsm重新編譯成exe檔案,命令如下:

ilasm /exe /resource=c:\temp\test.res c:\temp\test.il /output=c:\mytest.exe

注意:第一個參數/exe是編譯後的程式類型。

 

編譯之後再運行,果然不再快顯視窗了,頓時喜上心頭,感覺到離成功不遠了。

立即使用按剛才的步驟來破解這個下載的dll,輸出成IL語言代碼之後,為了確定快顯視窗的代碼位置,直接先搜尋許可視窗中提示資訊,找到該字串所在的方法之後,覺得讀IL代碼太麻煩,函數名又都是數字,就利用Reflector的Analyze分析功能,找到該函數的"Used By",發現是在一個類名為xb08f1495afd18c6f的建構函式中被調用,於是就確定了快顯視窗的代碼位置,將該行代碼直接替換成nop命令。

再重新編譯成dll之後加入項目中使用,發現無法把該控制項拖到設計器上,使用代碼調用能編譯通過,卻在運行時彈出了異常資訊:

“未能負載檔案或程式集“RichWinFormSuite, Version=4.0.2.36, Culture=neutral, PublicKeyToken=a730077342cbf1ce”或它的某一個依賴項。強式名稱驗證失敗。 (異常來自 HRESULT:0x8013141A)”。

 

於是從網上找了資料,下載了一個snRemove的工具來,按照網上的說明進行操作,先將原始的dll檔案去除強式名稱,然後再複製剛才的IL代碼修改過程,完畢,重新加到項目引用中,卻總是依舊。網上有人說這個工具去掉的強式名稱在windows2003上會失效,而我用的正是這個作業系統。

後來又在網上搜尋了一些關於強式名稱破解方面的資料,但暫時還沒有找到方法。我嘗試過索性將IL語言中的.publickey程式碼片段直接刪除,然後在啟動並執行時候居然報出一個異常:公用語言運行庫檢測到無效的程式。

 

哈哈,看來強式名稱還是強呢,雖然.net的反編譯省事很多,但是這破解並不像傳說中那麼簡單啊。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.