C#代碼反編譯 得到項目可運行源碼 經(jīng)驗分享
源碼文件中會出現(xiàn)一個 _PrivateImplementationDetails_{1FF4F699-35E0-4117-BDBC-9E44A1B0F9F5}.cs 文件名很長 內(nèi)容如上的 亂碼類,對此解決辦法時:注釋此類 或直接刪除。【程序相關(guān)的文件,如圖片、數(shù)據(jù)庫等要記得放到項目關(guān)聯(lián)位置,一般在bin/debug/文件夾下】
d. 添加相關(guān)程序集的引用,設(shè)置啟動對象。到這兒,差不多程序就可以 跑起來了,但是還沒有完 ——因為 反編譯后的代碼,文件夾的位置和界面與資源引用之間的關(guān)聯(lián),基本上都亂了.所以現(xiàn)在要解決的關(guān)鍵問題是:恢復(fù)文件間的關(guān)聯(lián)和引用(其它的問題,通過調(diào)試就差不多可以解決)。如圖:
#FormatImgID_2#窗體的.cs和.resx(資源)文件不在同一個文件夾中,對應(yīng)窗體的.resx文件都加上了項目或解決方案名前綴(zhiyiSystem.) ——This is point! 這就是我們要解決問題的關(guān)鍵:恢復(fù)窗體的.cs和.resx文件間的關(guān)聯(lián),操作大致有以下兩步:1.將窗體的.cs和.resx文件放在同一個文件中——即同一目錄。2.去掉窗體的.resx文件的前綴 ——即修改文件名,如果是一個個文件去修改,窗體比較多的話,是一件非常重復(fù)而無聊的事,于是 就上網(wǎng)找 "批量修改文件名"的工具,下載了一兩個感覺都不好用,找不到,只能自己搞了,再說這東西簡單,說白了就是 遍歷文件夾中文件并'重命名'(代碼就不貼出了,文章后 附有 自己寫的 "批量修改文件名"工具)。
到此,程序就可以真正跑起來了。別看我寫出來,似乎'破解'就是一會兒的事,但我做的時候,卻幾經(jīng)折騰 好幾次都感覺"算了,又卡住了...",有些或大或小問題,在這里因為時間的原因 及有些步驟一時半會也想不起來了,但主要的方法應(yīng)該都沒有落下,如果有不明白的朋友,可以留言交流,再做解答;也希望在'破解'方法有經(jīng)驗的,能多提些意見,分享下你的‘破解’經(jīng)驗!