精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

微軟MVP手把手教你如何修改.NET Framework

開發 后端
本文作者在工作中碰到了為跟蹤一個Bug而焦頭爛額的問題,最后發現是.NET Framework的原因。所以作者寫下此文與大家探討。

這段時間為跟蹤一個Bug而焦頭爛額,最后發現是.NET Framework的問題,這讓人多少有些絕望。所以到微軟論壇提了個帖子,希望能得到些幫助。雖然論壇智能到能夠判斷樓主是否是MSDN訂閱用戶,以便盡快解決(傳說MSDN訂閱用戶的問題能在兩天內得到回復的,當時還很得意公司為我們購買的MSDN訂閱賬號),但得到的回復是“Could you file a bug report for this issue through Connect?”,絕望之后的又一次寒心啊。

看過payeasy的廣告之后,便有了以下的這些內容,如何修改.NET Framework: 

這里我們以修改Guid類為例,我們將修改這個類的內部構造,以便其始終構造值為0值(00000000-0000-0000-000000000000)的對象

1,知道你要修改.NET Framework中的誰(dll的名稱)

這很簡單, 翻翻MSDN,你應該能找到你所調用的類庫是哪一個,或者使用reflector可以得到更詳盡的信息。從MSDN得知,Guid類在mscorlib.dll中

2,找到你要修改的dll,并拷貝出來,以便修改

mscorlib.dll位于GAC中,很可惜,windows只允許按照“可遠觀不可褻玩"的方式靜靜欣賞(盡管心急如焚)


我們現在需要將該dll在操作系統中的實際路徑找出來

2.1 下載FileMon,其用于監視文件的被訪問情況,我們可以通過他,找到文件路徑

2.2  寫一個小程序,讓該程序去訪問(引用)你需要查找路徑的文件,這里也就是我們的mscorlib

        static void Main(string[] args)
        {
            Guid guid = Guid.NewGuid();

            Console.WriteLine(guid);

            Console.Read();
        }

代碼中的Guid以及Console等都會訪問mscorlib.dll

2.3 運行FileMon,讓他去監視mscorlib的訪問,由于我們不知道mscorlib的具體路徑(廢話),但我們至少知道它在C:\WINDOWS\assembly下(至少知道在系統盤下),那么我們就將這個文件夾及其所有文件一塊監視吧: 

監視文件


2.4,運行我們的小程序,FileMon將監視到所有到C:\WINDOWS\assembly下的訪問,并將包含mscorlib的高亮,雙擊列表中的條目,其將自動打開文件所在的文件夾:

打開文件所在的文件夾


OK,現在找到該dll文件了,將其拷貝出來,以供我們修改,并將其路徑記錄下來以備將來使用(C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089)。另外,建議備份一下拷出來的dll。

3,利用ildasm反編譯該dll,生成中間語言(IL)文件,我們將修改該IL文件

ildasm是.NET自帶的一個反編譯工具,可以再SDK中找到,但通過VS的控制臺便可以使用了(具體使用方式,參考MSDN)

VS控制臺


然后可以得到該程序集的IL文件

得到IL文件


它其實是一個文本文件,所以可以直接打開進行編輯,但建議使用Notepad++或 UltraEdit 文本編輯器,但打開后似乎有些讓人有些崩潰,汪洋大海啊,如何找到我們需要修改的代碼所在的位置呢

#p#

4,利用reflector查看所要尋找的類或方法的定義

打開reflector,查找所要尋找的類或方法,并查看其定義,假設我們需要的是Guid.NewGuid()方法:

打開reflector

切換到IL視圖: 

切換到IL視圖""


OK,有了該IL片段,要在mscorlib.dll.il的汪洋大海中查找該方法就很簡單了(Ctrl-F)

5,修改IL代碼

在notepad++或UltraEdit中找到對應的方法。我們發現NewGuid()實際是調用其Guid(bool)方法,我們可以將其替換成默認構造函數(默認構造函數構造的guid為00000000-0000-0000-000000000000)這樣一來調用NewGuid()方法時則始終返回0值了,也可以在調用Guid(bool)時傳入true,我們采用后者:

  .method public hidebysig static valuetype System.Guid 
          NewGuid() cil managed
  {
    // 代碼大小       7 (0x7)
    .maxstack  8
    IL_0000:  ldc.i4.0
    IL_0001:  newobj     instance void System.Guid::.ctor(bool)
    IL_0006:  ret
  } // end of method Guid::NewGuid

上面代碼中的IL_0000:  ldc.i4.0 表示將0(false)作為4字節整數入棧,我們將其中的0改成1:

  .method public hidebysig static valuetype System.Guid 
          NewGuid() cil managed
  {
    // 代碼大小       7 (0x7)
    .maxstack  8
    IL_0000:  ldc.i4.1
    IL_0001:  newobj     instance void System.Guid::.ctor(bool)
    IL_0006:  ret
  } // end of method Guid::NewGuid

(注意,這里的操作很簡單,所以很單純地修改了,若對于比較復雜的操作請先學習IL相關知識)
然后保存你的修改。

6,編譯IL代碼,生成新的DLL

利用ms提供的ilasm可以將IL文件編譯成dll:

生成新的DLL


 (編譯前別忘記關閉文本編輯器,比如ultraEdit會獨占文件而導致無法訪問)

7,將修改后的DLL放回到GAC 

你可能會想到按照MSDN上提到的方法就如同安裝自己普通的程序集一樣將其安裝到GAC,大概能猜想到這是不可行的,否則”不安全了“。 或者,我們剛才不是記錄了mscorlib的路徑的嗎,直接復制粘貼進去覆蓋不就行了,也許可以,也許不可以,只所以說不可以,原因有可能有二,一是根本不讓訪問頁不讓覆蓋,二是程序.net程序運行時會檢查程序集版本。那么就試試看吧:
直接訪問指定的路徑看來是不行的了,正如下圖所示:

檢查路徑


不過沒關系,我們可以通過第三方工具訪問到該目錄,可以通過剛才的FileMon,雙擊條目可以打開相應的文件目錄,還有一種更常用的方便的方式是用TotalCommander,其可以方便的訪問Windows的各種隱藏路徑。

訪問Windows的各種隱藏路徑""


 將文件拖放到對應目錄便可以覆蓋了.

8, 刪除程序集的本機映像(native image)

回到剛才用FileMon監視mscorlib訪問時,大家可能會發現我們的小程序直接訪問的并非mscorlib.dll, 而是一個名為mscorlib.ni.dll的文件(在C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\mscorlib\9adb89fa22fd5b4ce433b5aca7fb1b07\ 路徑下),這是mscorlib.dll的本機映像(native image), 關心過.net優化的朋友應該會知道我們可以通過ngen來將程序集生成本機映像以提高運行速度. 那么程序將直接去訪問該映像而非我們修改過的mscorlib.dll,這會導致我們的修改看不到效果。所以我們要將該映像刪除。為什么是刪除,而不是將修改過的mscorlib.dll利用ngen來生成一個新的映像而覆蓋之? 原因很簡單,大家自己想想吧。
首先,利用ngen uninstall 命令從本機映像緩存中卸載本地映像,然后利用TotalCommander將其刪除(注意,先關閉可以對所覆蓋的程序集有所引用的應用程序,最好重啟一下電腦,應該不用進安全模式刪那么費勁)

9,驗證一下修改.NET Framework成果

    class Program
    {
        static void Main(string[] args)
        {
            Guid guid1 = Guid.NewGuid();
            Guid guid2 = Guid.NewGuid();

            Console.WriteLine("the first  GUID: {0}", guid1);
            Console.WriteLine("the second GUID: {0}", guid2);

            Console.Read();
        }
    }
如果使用MS原版的mscorlib.dll我們將得到類似于下面的輸出: 

使用MS原版

使用我們修改過的mscorlib.dll:

修改過的mscorlib.dll

(另外,值得注意的是,Visual studio對某些程序集的引用來自于C:\Program Files\Reference Assemblies 下,所以,對于某些程序集如果要對VS引用造成影響則應該覆蓋C:\Program Files\Reference Assemblies下的對應文件。這里的mscorlib不需要)

【編輯推薦】

  1. 淺談.NET Framework中的Stream.Read方法
  2. 淺析.NET Framework中XML數據處理
  3. .net framework3.5新特性2:新增匿名類
  4. 微軟公布下一代Visual Studio和.NET Framework平臺
  5. 配置Visual Studio 2008來調試.NET Framework源碼的基本步驟
責任編輯:彭凡 來源: cnblogs
相關推薦

2011-01-06 10:39:25

.NET程序打包

2022-12-07 08:42:35

2022-07-27 08:16:22

搜索引擎Lucene

2009-07-30 14:10:40

ASP.NET版本

2021-07-14 09:00:00

JavaFX開發應用

2023-07-04 07:37:20

AzureOpenAI操作手冊

2011-05-03 15:59:00

黑盒打印機

2011-01-10 14:41:26

2025-05-07 00:31:30

2009-11-02 15:33:53

VB.NET Data

2022-07-28 16:06:08

app分身

2022-06-06 08:50:40

CIOIT轉型

2014-08-08 13:22:54

測試手機站點移動設備

2021-01-19 09:06:21

MysqlDjango數據庫

2010-07-06 09:38:51

搭建私有云

2021-11-09 06:55:03

水印圖像開發

2010-07-06 09:43:57

搭建私有云

2023-04-26 12:46:43

DockerSpringKubernetes

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2022-01-08 20:04:20

攔截系統調用
點贊
收藏

51CTO技術棧公眾號

欧美日韩亚洲免费| 久久最新视频| 欧美在线影院一区二区| 日韩精品福利视频| 亚洲国产精品无码久久久| 色综合综合色| 欧美精品久久久久久久多人混战 | 午夜精品毛片| 思思99re6国产在线播放| 亚洲美女一区| 国产一区二区三区在线观看视频 | 精品一二三四区| 欧美交受高潮1| 变态另类ts人妖一区二区| 亚洲91在线| 欧美日韩视频在线| 最新精品视频| 日本在线视频1区| 精东粉嫩av免费一区二区三区| 久久久久久免费精品| 亚洲欧美va天堂人熟伦| 98视频精品全部国产| 欧美色区777第一页| 国产午夜大地久久| av在线影院| 欧美极品aⅴ影院| 国产欧美日韩一区| 国产精品热久久| 日韩黄色免费电影| 97精品国产97久久久久久春色| 美女av免费看| 少妇一区二区视频| 精品sm捆绑视频| 欧美激情国内自拍| 亚洲天堂1区| 日韩欧美国产骚| 国产精品入口芒果| 午夜伦理在线视频| 中文字幕一区二区三区四区| 欧美日韩大片一区二区三区| 刘亦菲久久免费一区二区| 精品一区二区在线观看| 日本一区二区不卡| 欧美日韩精品区| 影音先锋国产精品| 欧美激情亚洲视频| 青青草成人免费| 日韩欧美视频在线播放| 日韩精品在线视频| 中文乱码人妻一区二区三区视频| 1769国产精品视频| 日韩欧美三级在线| 91网址在线观看精品| 亚洲精品成人一区| 欧美日韩免费在线视频| 国产情侣av自拍| 亚洲电影观看| 精品人伦一区二区三区蜜桃网站| 国产 欧美 日韩 一区| 人妖欧美1区| 亚洲五码中文字幕| 国产精品三级一区二区| 亚洲欧美成人影院| 一区二区三区久久| 欧美成人精品免费| 国产ktv在线视频| 婷婷中文字幕一区三区| 欧美亚洲精品一区二区| 超碰资源在线| 一本一道综合狠狠老| 国产精品无码一本二本三本色| 黄视频免费在线看| 欧美日韩亚洲视频一区| 男人舔女人下面高潮视频| 日本综合久久| 欧美久久久久免费| 制服.丝袜.亚洲.中文.综合懂| 欧美高清一级片| 亚洲成人激情在线| 日本一级免费视频| 天天综合网网欲色| 久久久久亚洲精品国产| 午夜毛片在线观看| 免费xxxx性欧美18vr| 91久久夜色精品国产网站| 国产xxxx孕妇| 91在线小视频| 伊人久久大香线蕉午夜av| 在线观看操人| 色噜噜夜夜夜综合网| 超碰成人在线播放| 久久精品66| 中文字幕日韩欧美在线视频| 青青草免费av| 亚洲另类视频| 国产精品一区二区三区久久 | 国产在线精品一区二区夜色| 51国偷自产一区二区三区的来源| 日韩中文字幕免费观看| 国产欧美一区二区精品性色 | 欧美日韩国产高清一区二区| 欧美高清精品一区二区| 网友自拍区视频精品| 一本色道久久88综合亚洲精品ⅰ | 精品国产乱码久久久久久婷婷| 欧美两根一起进3p做受视频| 日韩在线成人| 在线观看国产欧美| 国产污视频在线观看| 美女视频一区二区| 久久精品国产精品国产精品污 | 98国产高清一区| 深夜福利视频一区| 一区二区三区在线观看国产| 狠狠操精品视频| 成人av综合网| www亚洲精品| 久久人妻免费视频| 国产电影一区二区三区| 亚洲精品永久www嫩草| 乡村艳史在线观看| 精品精品国产高清a毛片牛牛| 蜜桃av乱码一区二区三区| 国产精品www.| 成人黄色免费片| 精品视频三区| 亚洲成av人片一区二区| 亚洲制服在线观看| 成人婷婷网色偷偷亚洲男人的天堂| 久久男人av资源网站| 国产精品久久久久久久久毛片 | 亚洲国产欧美自拍| 欧美毛片在线观看| 六月丁香婷婷久久| 日韩久久精品一区二区三区| 草草在线视频| 亚洲国产精品系列| 国产无遮无挡120秒| 国产成人激情av| 中文字幕精品在线播放| 欧美一区=区三区| 国产一区二区三区视频 | 欧美三级蜜桃2在线观看| brazzers精品成人一区| 99在线观看免费视频精品观看| 懂色av一区二区三区在线播放| av在线看片| 欧美一区二区三区啪啪| 一区二区国产精品精华液| 美女任你摸久久| 亚洲精品欧美精品| 国产电影一区二区三区爱妃记| 亚洲视频综合网| 亚洲s码欧洲m码国产av| 成人一二三区| 福利视频网站一区二区三区| 欧美理论一区二区| 亚洲美女炮图| 亚洲欧美一区二区三区情侣bbw| 国产精品一区二区6| av电影天堂一区二区在线观看| 成人免费视频91| 久久久久久久久久久久久久久久久久久久 | 亚洲男人的天堂av| 69久久精品无码一区二区| 亚洲美女视频| 国产91亚洲精品一区二区三区| 欧美黑人猛交的在线视频| 精品免费日韩av| www.av麻豆| 国产婷婷一区二区| mm131亚洲精品| 一级欧洲+日本+国产| 国产精品高清一区二区三区| av今日在线| 一区二区三区视频在线| 先锋在线资源一区二区三区| 亚洲高清不卡av| 一本到不卡免费一区二区| 欧美中文日韩| 欧美a级一区二区| 国产视频一区在线| 中文字幕精品三级久久久| 久久人人爽爽爽人久久久| 亚洲第一狼人区| 欧美在线资源| 欧美成人dvd在线视频| 成人免费网站www网站高清| www.99久久热国产日韩欧美.com| 亚洲av无码片一区二区三区| 欧美日韩裸体免费视频| 国产jk精品白丝av在线观看 | 337p日本欧洲亚洲大胆张筱雨| 国内精品久久久久久久影视蜜臀| 欧美日韩大片一区二区三区| 国产精品xnxxcom| 欧美亚洲视频在线观看| 午夜视频在线观看免费视频| 精品粉嫩aⅴ一区二区三区四区| 看黄色一级大片| 亚洲最大色网站| 国产精成人品免费观看| 永久免费网站在线| 欧美日韩精品一区视频| 国产精品7777| 亚洲三级理论片| 久久久视频6r| www.日韩精品| 亚洲一区二区偷拍| 日韩成人免费电影| 轻点好疼好大好爽视频| 欧美色图在线播放| 国产欧美一区二区在线播放| 日韩av黄色| 国产97色在线|日韩| 国产美女福利在线观看| 色老头一区二区三区在线观看| 天天躁日日躁狠狠躁喷水| 91精品麻豆日日躁夜夜躁| 国产精品极品美女粉嫩高清在线| 欧美日韩在线视频播放| 亚洲一区二区四区蜜桃| 天天爽天天爽天天爽| 久久久99精品久久| 中国xxxx性xxxx产国| 韩国毛片一区二区三区| 毛葺葺老太做受视频| 亚洲精品偷拍| 中文字幕在线乱| 亚洲自拍电影| 国产精品免费一区二区三区观看| 欧美天堂一区| 国产欧美在线观看| 成人视屏在线观看| 欧美综合国产精品久久丁香| 7777kkk亚洲综合欧美网站| 精品中文字幕在线| 性xxxfreexxxx性欧美| 久久久精品网站| 麻豆影视在线观看_| 日韩小视频在线| 在线免费观看黄| 中文字幕亚洲精品| 国产福利片在线| 国产一区二区三区毛片| 懂色av中文在线| 在线亚洲男人天堂| 午夜伦全在线观看| 日韩在线观看你懂的| 免费网站看v片在线a| 色噜噜狠狠色综合网图区| 亚洲图片88| 久久精品久久精品亚洲人| 黄色网页在线播放| 欧美成人亚洲成人日韩成人| 在线观看三级视频| 久久久亚洲欧洲日产国码aⅴ| 97蜜桃久久| 欧美中文字幕视频在线观看| 超碰高清在线| 欧美中文字幕在线播放| 黄色成人免费网| 国产成人avxxxxx在线看| 电影亚洲一区| 亚洲va欧美va在线观看| 99re8这里有精品热视频免费 | 91制片厂毛片| 国内成人免费视频| 丰满少妇一区二区三区专区| 不卡av电影在线播放| 88久久精品无码一区二区毛片| 国产女人18毛片水真多成人如厕| 日本在线观看网址| 亚洲精品你懂的| 激情五月婷婷在线| 欧美日韩一二三四| 亚洲色图国产精品| 国产在线中文字幕| 精品国产视频在线| 国产亚av手机在线观看| 欧美亚洲国产另类| 日本精品在线中文字幕| 91免费在线视频| 欧美黄色网视频| 亚洲一区二区三区精品在线观看| 欧美激情第10页| 久久久精品在线视频| 麻豆一区二区三| 亚洲精品乱码久久久久久蜜桃图片| 久久免费美女视频| chinese全程对白| 欧美日韩精品中文字幕| 一级成人免费视频| 日韩精品中午字幕| 成人在线观看网站| 午夜电影亚洲| www.18av.com| 91久久国产| 国产欧美在线一区| 国产美女精品一区二区三区| 国产肉体xxxx裸体784大胆| 国产精品超碰97尤物18| 中文字幕亚洲精品在线| 欧美精品 国产精品| 日本中文字幕电影在线观看 | 久久免费视频99| 在线视频一区二区免费| 成人爽a毛片一区二区| 永久免费精品影视网站| aa视频在线观看| 99国产盗摄| 欧美高清在线| 欧美 激情 在线| 国产·精品毛片| 日韩欧美综合视频| 91成人网在线| 少妇精品高潮欲妇又嫩中文字幕| 日韩在线视频二区| 欧美大片免费| 精品国产综合| 黄色免费成人| 久久久久亚洲av片无码v| 国产欧美一区二区三区在线老狼| 日韩毛片在线播放| 日韩天堂在线观看| 日本不卡在线| 国产狼人综合免费视频| 国产一区二区三区日韩精品 | 亚洲精品乱码久久久久久金桔影视 | 亚洲精品日韩专区silk| 国产又粗又黄又爽视频| 国产一区二区三区18| 日韩pacopacomama| 免费一区二区三区在在线视频| 亚洲片区在线| 欧美xxxxx少妇| 夜夜爽夜夜爽精品视频| 国产日韩欧美视频在线观看| 最近更新的2019中文字幕| 在线成人视屏| 日韩激情久久| 日韩影院在线观看| 舐め犯し波多野结衣在线观看| 色综合天天综合在线视频| 日夜干在线视频| 欧美性视频精品| 亚洲v天堂v手机在线| 黄色免费观看视频网站| 91麻豆免费观看| 黄色片中文字幕| 亚洲色图五月天| 成人国产网站| 免费看啪啪网站| 国产一区二区免费看| 国产盗摄x88av| 精品国产髙清在线看国产毛片| 免费在线看电影| 久久国产精品一区二区三区四区| 国产一区二区你懂的| 9.1成人看片免费版| 在线观看日韩一区| √新版天堂资源在线资源| 国产区精品视频| 亚洲精品久久久| 国产国语老龄妇女a片| 岛国av午夜精品| 国产在线视频网站| 成人久久一区二区| 精品白丝av| 91视频在线网站| 欧美精品日日鲁夜夜添| 中文字幕中文字幕在线中高清免费版 | 久久露脸国产精品| 国产亚洲高清一区| 女人被男人躁得好爽免费视频| 99在线视频精品| 成人黄色免费网| 欧美精品一区在线播放| 女仆av观看一区| 天天操天天爱天天爽| 亚洲欧美激情在线| 少妇无码一区二区三区| 国产精品成人av性教育| 先锋资源久久| 波多野结衣视频播放| 在线观看日韩毛片| 欧美人与牲禽动交com| 欧美日韩高清免费| 国产一区二区三区在线观看免费 | 羞羞视频在线观看不卡| 精品国产福利| 美女在线视频一区| 国产午夜精品无码一区二区| 国产亚洲欧洲高清| 91麻豆精品国产91久久久久推荐资源| 国产精品免费观看久久| 亚洲免费看黄网站| 狠狠v欧美ⅴ日韩v亚洲v大胸| 91aaaa| 激情文学一区|