精品久久看,欧美成人久久一级c片免费,日本加勒比在线精品视频,国产一区二区三区免费大片天美,国产成人精品999在线,97理论三级九七午夜在线观看

東坡下載:內容最豐富最安全的下載站!

首頁IT技術 → C#代碼反編譯 得到項目可運行源碼 經驗分享

C#代碼反編譯 得到項目可運行源碼 經驗分享

相關文章發表評論 來源:本站時間:2011/3/15 16:49:36字體大小:A-A+

更多

作者:點擊:716次評論:4次標簽:

今天在網上看到了編輯了好幾次,老是出錯,作者所做的反編譯,并不是'破解',我們這篇文章要跟大家分享的是:用Reflector將C#的開發的軟件[項目](此文中所說的是winForm項目,對于.net項目可以借鑒或參考)的項目代碼還原——反編譯得到可運行項目源碼。其使用的前提或情況是:公司原來請人開發的'配餐軟件(幼兒園版)',現有客戶咨詢想買,并且軟件中存在一些問題需改,——不是本人開發的,該軟件也無源碼,想修改只能想辦法得到軟件的源碼。詳細的'破解'方法記錄在下,方便自己以后查看!(ps: '破解'的方法,自己之前就摸索過。但困于反編譯之后的error比較多,沒有耐心,有的問題感覺比較離奇,試了幾次不行就放棄了 ——這就間接的說明:真正的黑客,應該都是比較有耐心的,呵呵..., 但做軟件開發,又何嘗不需要這樣?!)

   a.使用到的工具:Reflector,具體的說是:Reflector插件File disassembler(具體是什么和how to use,直接上網查)。

   b. 打開Reflector,選擇要'破解'的軟件(.exe)主程序,再選擇并點擊 如圖: #FormatImgID_0#, 在右側出現的 程序集(輸出)類型選擇界面 選擇類型'windows Appliction' (因為是winForm應用程序,如果是選擇的其它 如'class ...'類庫,則需要在之后的步驟中,改變項目屬性中的 輸出類型,不建議這樣操作),如圖:#FormatImgID_1#

   點擊 生成 即可 得到此主程序集的源碼,其它的相關程序集再如此操作即可! ——不要以為大功告成,這只是第一步,麻煩的在后面!

   c.將生成的源碼 在Vs中打開(項目), 先試著運行下,(一般)會報錯,排除'xxx程序集不存在'這類的錯誤,我所遇到的如下:

  

using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

[CompilerGenerated]
internal class <PrivateImplementationDetails>{1FF4F699-35E0-4117-BDBC-9E44A1B0F9F5}
{
   
internal static Dictionary<string, int> $$method0x600012e-1;
   
internal static Dictionary<string, int> $$method0x6000137-1;
   
internal static Dictionary<string, int> $$method0x6000137-2;
   
internal static Dictionary<string, int> $$method0x600014a-1;
   
internal static Dictionary<string, int> $$method0x6000169-1;
   
internal static Dictionary<string, int> $$method0x60001b6-1;
   
internal static __StaticArrayInitTypeSize=20 $$method0x6000213-1; // data size: 20 bytes
    internal static __StaticArrayInitTypeSize=20 $$method0x6000213-2; // data size: 20 bytes
    internal static __StaticArrayInitTypeSize=20 $$method0x6000213-3; // data size: 20 bytes
    internal static __StaticArrayInitTypeSize=20 $$method0x6000213-4; // data size: 20 bytes

    [StructLayout(LayoutKind.Explicit, Size
=20, Pack=1)]
   
private struct __StaticArrayInitTypeSize=20
    {
    }
}

   源碼文件中會出現一個 _PrivateImplementationDetails_{1FF4F699-35E0-4117-BDBC-9E44A1B0F9F5}.cs 文件名很長 內容如上的 亂碼類,對此解決辦法時:注釋此類 或直接刪除。【程序相關的文件,如圖片、數據庫等要記得放到項目關聯位置,一般在bin/debug/文件夾下】

   d. 添加相關程序集的引用,設置啟動對象。到這兒,差不多程序就可以 跑起來了,但是還沒有完 ——因為 反編譯后的代碼,文件夾的位置和界面與資源引用之間的關聯,基本上都亂了.所以現在要解決的關鍵問題是:恢復文件間的關聯和引用(其它的問題,通過調試就差不多可以解決)。如圖:

   #FormatImgID_2#窗體的.cs和.resx(資源)文件不在同一個文件夾中,對應窗體的.resx文件都加上了項目或解決方案名前綴(zhiyiSystem.) ——This is point! 這就是我們要解決問題的關鍵:恢復窗體的.cs和.resx文件間的關聯,操作大致有以下兩步:1.將窗體的.cs和.resx文件放在同一個文件中——即同一目錄。2.去掉窗體的.resx文件的前綴 ——即修改文件名,如果是一個個文件去修改,窗體比較多的話,是一件非常重復而無聊的事,于是 就上網找 "批量修改文件名"的工具,下載了一兩個感覺都不好用,找不到,只能自己搞了,再說這東西簡單,說白了就是 遍歷文件夾中文件并'重命名'(代碼就不貼出了,文章后 附有 自己寫的 "批量修改文件名"工具)。

   到此,程序就可以真正跑起來了。別看我寫出來,似乎'破解'就是一會兒的事,但我做的時候,卻幾經折騰 好幾次都感覺"算了,又卡住了...",有些或大或小問題,在這里因為時間的原因 及有些步驟一時半會也想不起來了,但主要的方法應該都沒有落下,如果有不明白的朋友,可以留言交流,再做解答;也希望在'破解'方法有經驗的,能多提些意見,分享下你的‘破解’經驗!

相關評論

閱讀本文后您有什么感想? 已有 人給出評價!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過難過
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無聊無聊
熱門評論
最新評論
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)

本類常用軟件

主站蜘蛛池模板: 国产精品精品视频 | 色偷偷久久一区二区三区 | 欧美亚洲精品在线 | 青青草色久综合网 | 色人阁综合 | 美女视频免费看一区二区 | 久久福利一区二区三区 | 第一毛片 | 精品九九久久国内精品 | 国产精选一区二区 | 欧美色图五月天 | 国产欧美一区二区成人影院 | 一级毛片在线全部免费播放 | 99热欧美| 久久99精品视频 | 国产精品天天看天天爽 | 国产成人一区二区三区影院免费 | 九七电影院97写真片 | 国产精品九九久久精品女同 | 久久99精品久久久久久国产人妖 | 4399一级成人毛片 | 多人伦精品一区二区三区视频 | 免费观看色视频 | 99ri国产在线 | 欧美精品在线播放 | 精品久久久中文字幕 | 深爱综合网 | 黄视频免费在线看 | 欧美成人一区二区三区不卡视频 | 能看毛片的网址 | 青草视频国产 | 日韩午夜免费视频 | 婷婷精品在线 | 四虎网址 | 日韩精品第1页 | 久久国产精品免费看 | 国产区免费 | 亚洲狠狠97婷婷综合久久久久 | 四虎成人在线视频 | 久热中文字幕 | 久久精品一区二区三区不卡 |