韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當前位置:蘿卜系統(tǒng)下載站 > 技術開發(fā)教程 > 詳細頁面

MS.Net CLR 擴展PE結(jié)構(gòu)區(qū)分(轉(zhuǎn),很不錯的文章)

MS.Net CLR 擴展PE結(jié)構(gòu)區(qū)分(轉(zhuǎn),很不錯的文章)

更新時間:2022-06-26 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

Flier Lu <flier_lu@sina.com.cn>

注意:本系列文章在水木清華BBS(smth.org)之.Net版首發(fā),
 轉(zhuǎn)載請保留以上信息,發(fā)表請與作者聯(lián)系

概述

本系列文章,將從系統(tǒng)層角度,通過對MS.Net CLR架構(gòu)對PE映像結(jié)構(gòu)的擴展的分析

解析MS.Net CLR架構(gòu)的底層部分運行機制,幫助讀者從更深層次理解CLR中某些重要概念
本文讀者應具備基本的Win32編程經(jīng)驗,了解.Net中常見概念意義,并對Win32之PE映像
結(jié)構(gòu)有一定了解,具體結(jié)構(gòu)請參看Matt Pietrek于1994.3發(fā)表在MSJ的經(jīng)典文章
《Peering Inside the PE: A Tour of the Win32 Portable Executable
File Format》,與之重復的部分我一概跳過。
本系列文章,將分為幾個大部分,首先是最重要的MetaData,其次是IL代碼結(jié)構(gòu),
然后……我還沒想好,呵呵。此外會根據(jù)需要穿插一下CLR核心概念、思想、技術的介紹
。
至于CLR幾個核心部件之間的關系與交互等問題,我熱切期待TBSoft的大作,
我這里就不去搶他的話題了,呵呵。

前言

對一個優(yōu)秀Win32程序員來說,對PE結(jié)構(gòu)的了解是對Win32架構(gòu)了解的必經(jīng)之路,
而從Chicago(Win95的開發(fā)代號,Win95正式發(fā)布以前的文檔對Win95的稱呼)以來,
PE結(jié)構(gòu)就相對穩(wěn)定,直到MS.Net的出現(xiàn),才發(fā)生了一些不大不小的變化。
之所以說是不大不小,是因為CLR基本上沒有對PE結(jié)構(gòu)進行改變,只是利用現(xiàn)有PE
結(jié)構(gòu)的優(yōu)良可擴展性,將其所需的信息擴展到PE映像中。具體一點說,就是利用了PE結(jié)
構(gòu)
中的IMAGE_OPTIONAL_HEADER.DataDirectory[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR]
來保存服務于CLR的IMAGE_COR20_HEADER結(jié)構(gòu)。此外的PE結(jié)構(gòu)一律不變。
IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR此節(jié),原本是設計用于COM,但不知為何
一直沒有被使用,現(xiàn)在用于保存.Net信息的最高級信息結(jié)構(gòu)。
 我們的分析也將集中在此結(jié)構(gòu)以及相關信息的分析上。
 IMAGE_COR20_HEADER結(jié)構(gòu)的定義,可以在FrameworkSDK\include\CorHdr.h
文件中找到,如下:

// CLR 2.0 header structure.
typedef struct IMAGE_COR20_HEADER
{
// Header versioning
ULONG cb;
USHORTMajorRuntimeVersion;
USHORTMinorRuntimeVersion;

// Symbol table and startup information
IMAGE_DATA_DIRECTORYMetaData;
ULONG Flags;
ULONG EntryPointToken;

// Binding information
IMAGE_DATA_DIRECTORYResources;
IMAGE_DATA_DIRECTORYStrongNameSignature;

// Regular fixup and binding information
IMAGE_DATA_DIRECTORYCodeManagerTable;
IMAGE_DATA_DIRECTORYVTableFixups;
IMAGE_DATA_DIRECTORYExportAddressTableJumps;

// Precompiled image info (internal use only - set to zero)
IMAGE_DATA_DIRECTORYManagedNativeHeader;

} IMAGE_COR20_HEADER;

 而詳細的說明,則可以在FrameworkSDK\Tool Developers Guide\docs
目錄中找到。因為要將CLR變?yōu)闃藴,MS這次一反常態(tài),公開大量有價值的文檔,
避免我等浪費時間去逆向過程,呵呵
 此結(jié)構(gòu)雖然字段較多,但實際上其核心在于MetaData,其他信息都是圍繞著
MetaData服務。之間的關系,等會再慢慢道來。
 cb是結(jié)構(gòu)大小,MajorRuntimeVersion.MinorRuntimeVersion是版本號
指執(zhí)行此程序所需的最低CLR版本號,目前一般設置為1.1。而現(xiàn)在發(fā)布的.Net
Framework的CLR版本一般為2.0。
 Flags是Runtime Image描述標志,描述此映像的執(zhí)行屬性。如設置位
COMIMAGE_FLAGS_32BITREQUIRED=0x02,則此映像只能在32位系統(tǒng)上執(zhí)行
對以后的64位CLR無效(MS.Net很大的一個功能就是為以后平滑過渡到64位
平臺做準備,想想以前16位平臺到32位平臺過渡時的混亂,以及現(xiàn)在比以前翻了
n倍的代碼量就恐怖,MS真是未雨綢繆啊,呵呵)。如果設置
COMIMAGE_FLAGS_STRONGNAMESIGNED=0x04,則此映像有strong name
signature(這個東東不知道怎么翻譯好)。這個strong name signature
在CLR架構(gòu)里起到了非常重要的作用。為什么這么說呢?因為這個strong name
signature起到Assembly的身份證的作用,它關系到CLR中一大堆概念的實現(xiàn),
以后我會專門用一章篇幅來介紹他,這里暫且放下。
 EntryPointToken則是指向IL程序的入口,類似于以前的
IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint的作用,只是以前的
AddressOfEntryPoint是一個RVA直接指向程序入口代碼所在地址,
(不要告訴我你不知道RVA是什么啊,呵呵,趕快去看Peering Inside the PE)
而現(xiàn)在EntryPointToken指向一個Token。注意,是Token,因為IL代碼是
JIT編譯的,存在于映像中的都是IL形式的P-code(pseudo code),在需要時
才由CLR動態(tài)讀取,在內(nèi)存中編譯展開為本機代碼(Native Code),進而執(zhí)行。
因此這里的程序入口執(zhí)行的只是一個MethodDef或File表的入口,一個Token而已。
 這里的MethodDef是一個MetaData表,每行定義一個方法;而File表則是
每行有一個File定義的表,每行包含一個外部文件的信息。也就是說,在執(zhí)行程序時
可以直接編譯執(zhí)行此映像中的一個方法的IL代碼,也可能是重定向到另一個文件,
這就是Assembly作為一個邏輯代碼單元,與傳統(tǒng)DLL之類相比一個很大的不同。
Assembly的概念也非常重要,我不想這里一下說完,以后專門拿一章出來講好了。
剩下幾個字段都是IMAGE_DATA_DIRECTORY類型,這個類型是一個數(shù)據(jù)塊
定義結(jié)構(gòu),在Winnt.h中有定義
typedef struct _IMAGE_DATA_DIRECTORY {
DWORD VirtualAddress;
DWORD Size;
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
呵呵,知道RVA的意思了吧 RVA = Relative Virtual Address
Resources定義CLI資源;StrongNameSignature定義剛剛提到的
strong name signature;此外CodeManagerTable,
ExportAddressTableJumps,MangedNativeHeader都沒用到。
VTableFixups暫且略過,以后用上時再詳細解釋。
這樣一來,就剩下一個MetaData字段沒有介紹了,不過這個重中之重的東東,
這次只言片語是無法介紹了,因為下面會有專門的一整篇——MetaData篇,
用n章的篇幅來詳細剖析,呵呵

btw:因為自己以前不是搞Win32底層開發(fā)的,實在不知這種文章怎么寫,
希望讀者多多提意見,有沒有解釋清楚或者錯誤的地方盡管提出來。

分析.Net的CLR PE映像其實并不是什么困難的事情,有現(xiàn)成的
代碼(mono)現(xiàn)成的文檔(Tool Developers Guide)可以看,
只是代碼比較難看(不習慣unix代碼風格),文檔比較長
(一共20幾M,poor)而已。我是實在耐不住好奇心才動手分析的,
希望能夠把自己分析的一些收獲和體會寫出來,節(jié)省其他朋友的時間。

希望能夠有充足的時間、精力和耐心完成這個系列

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
日韩avvvv在线播放| 99久久99久久精品免费看小说.| 老熟妇仑乱视频一区二区| 欧美挤奶吃奶水xxxxx| 91久久国产精品91久久性色| 久久蜜桃精品| 欧美在线999| 亚洲人午夜精品| 捆绑变态av一区二区三区| 精品亚洲一区二区三区四区五区| 波多野结衣久草一区| 久久草av在线| 亚洲成人av动漫| 国产精欧美一区二区三区蓝颜男同| 亚洲欧洲日本一区二区三区| 污网站在线观看免费| 国产又大又黄的视频| 亚洲第一成人网站| 国内精品国产成人国产三级| 国产一区二区三区在线观看免费| 国产成人精品亚洲日本在线桃色| 三级做a全过程在线观看| 色一情一乱一伦| 另类调教123区| 国内亚洲精品| 中文字幕第31页| 欧美三区免费完整视频在线观看| 桃花网日韩影视在线观看视频| 国产精品久久久久影院亚瑟| 久久免费福利视频| 日本黄色三级网站| 免费在线视频一区| 国产又黄又粗又长| 国产免费观看久久黄| 性欧美精品一区二区三区在线播放| 中文字幕人成一区| 久久夜色精品国产噜噜av| 国产a∨精品一区二区三区仙踪林| 草莓视频一区二区三区| 国产成人精品网址| 国产免费黄视频在线观看| 亚洲欧洲综合另类在线| 欧美大肥婆大肥bbbbb| 菠萝蜜视频国产在线播放| 黄色动漫网站| 亚洲精品中文字幕女同| 免费人成a大片在线观看动漫| 久久久久久久久久久久久久| 美女禁区视频免费观看精选| 国产成人一二| 欧美日韩成人网| 一区二区三区毛片免费| 亚洲av无码国产精品永久一区| 综合久久一区| 国产精品亚洲不卡a| 美女网站在线观看| 国产永久免费高清在线观看视频| 久久精品国产99久久| 日韩欧美手机在线| 日韩在线视频线视频免费网站| 日韩精品免费一区二区三区竹菊| 国产无套丰满白嫩对白| 中文字幕55页| 日韩成人在线视频| 波多视频一区| 91精产国品一二三产区别沈先生| 桥本有菜av在线| 色先锋av资源中文字幕| 欧美最新精品| 国产喷水吹潮视频www| 国产一区激情在线| 欧美久久综合网| 国产精品一区二区果冻传媒| 欧美欧美欧美| 四虎国产成人免费观看| 欧美久久成人| 日本丰满少妇做爰爽爽| 亚洲成色在线综合网站2018站| 亚洲精品美女久久久久| 北岛玲日韩精品一区二区三区| 伊人网在线观看| 亚洲图片小说在线| 毛片a片免费观看| 亚洲成人在线播放| 久久天堂精品| 黄色小视频免费网站| 欧美精品在线一区二区| 台湾色综合娱乐中文网| 女~淫辱の触手3d动漫| 国产亚洲亚洲国产一二区| 99re热视频这里只精品| 国产美女做爰免费视频软件| 9i精品福利一区二区三区| 成人午夜在线视频一区| 亚洲午夜久久久久久久久| 欧美久久久久久久久中文字幕| 国产黄色精品| 欧美日韩1区| 欧美一区二区三区成人片在线| 内射一区二区三区| 国产一本一道久久香蕉| 女人另类性混交zo| 久久一区91| 欧美日韩黄色大片| 久久影院模特热| 国产亚洲毛片| 成人一二三区视频| 一区二区激情| 亚洲精品中文字幕有码专区| 午夜在线免费观看视频| 日本久久久久久久| 成人免费xxxxx在线视频| 亚洲v国产v欧美v久久久久久| 亚洲欧美日韩综合一区| 全国精品免费看| 国偷自产一区二区免费视频| caoporn成人免费视频在线| 国产无遮挡在线视频免费观看| 在线观看黄网址| 国产精品9999| 黄色影院在线观看| 日韩在线国产精品| 日本不卡一区二区三区视频| 久久久久久久久久久久久久久99| 18国产免费视频| 亚洲欧洲日夜超级视频| 久久免费精品视频在这里| 精品视频123区在线观看| 激情欧美国产欧美| 国产精品va在线观看视色| 国产精品日韩精品欧美在线| 蜜桃传媒九九九| 好吊妞无缓冲视频观看| 亚洲欧美高清视频| 国产一区二区视频在线| 亚洲图片一区二区| 丰满白嫩尤物一区二区| 国产一区二区三区成人| 中文字幕永久在线视频| 99综合在线| 伊人中文在线| 亚洲性受xxx喷奶水| 国产制服91一区二区三区制服| 国产麻豆剧传媒精品国产av| 天天色天天射天天综合网| 欧洲亚洲在线视频| 色狼人综合干| 国产极品人妖在线观看| 日韩av在线免播放器| 99热这里只有精品66| 欧美午夜在线观看| 亚洲第一狼人社区| 国产玉足脚交久久欧美| 国产伦乱精品| 日本一区二区三区视频免费看| www.99re6| 亚洲国产精品18久久久久久| 亚洲激情六月丁香| 青娱乐国产精品视频| 国产一区二区免费在线| 成人影院免费观看| 欧美高清自拍一区| 国产免费一区二区三区四在线播放| 久久久在线视频| 亚洲国产成人精品久久久国产成人一区| 手机看片日韩av| 一区二区三区精品牛牛| 丰满人妻一区二区三区免费视频| 蜜芽tv福利在线视频| 国产中文字幕精品| 欧美成人中文字幕在线| 精品国产欧美日韩一区二区三区| 精品久久久亚洲| 人妻无码一区二区三区| 成人免费精品动漫网站| 国产视频一区不卡| 美女视频免费观看网站在线| av小片在线| 精品久久久在线观看| 欧美一乱一性一交一视频| 日韩福利影院| 国产91在线免费观看| 国产精品日韩一区二区免费视频| 中文字幕在线有码| 日韩av中文在线| 九九视频免费观看| 日本成人黄色网址| 中文字幕高清av| 91好色先生tv| 波多野结衣作品集| 日韩风俗一区 二区| 可以免费在线看黄的网站| a视频网址在线观看| 99久久久久| 精品播放一区二区| 九九久久综合网站| 亚洲韩国精品一区| 欧美激情一区二区久久久| 日韩欧美视频免费观看| 香蕉精品视频在线观看| 在线观看成人免费视频| 国产原创一区二区三区| 成年人免费大片| av片在线观看网站| 国产精品美女在线播放| 99精品人妻无码专区在线视频区| www插插插无码视频网站| 久久手机精品视频| 高清欧美日韩| 国产又大又粗又爽| 韩日欧美一区二区三区| 国产成人亚洲综合91| 在线丝袜欧美日韩制服| 精品少妇av| 成人污污视频在线观看| 日韩av电影免费播放| 欧美高清xxx| 久久久国产精华| 天美一区二区三区| 婷婷成人激情| 欧美乱妇40p| 一区二区三区视频在线免费观看| 一区二区免费不卡在线| 久久精品一区二区免费播放| 午夜娱乐在线| 国产精品一区三区| 青青草精品视频在线观看| 国产亚洲制服色| 中文字幕精品一区| 日韩毛片免费视频一级特黄| 91精品国产免费久久综合| 日本一区二区三区视频免费看| 男人的天堂亚洲| 琪琪久久久久日韩精品| 久久夜色精品亚洲噜噜国产mv| аⅴ资源新版在线天堂| 成人中文字幕+乱码+中文字幕| 日韩精品免费在线视频观看| 欧美成人手机视频| 精品国产91亚洲一区二区三区婷婷| av不卡一区二区三区| 久草国产在线视频| 竹内纱里奈兽皇系列在线观看| 欧洲成人免费视频| 国产福利精品av综合导导航| 色se01短视频永久免费| 日韩av在线导航| 992tv在线成人免费观看| 国产一区二区三区四| 中文字幕久热在线精品| 亚洲精品2区| 手机毛片在线观看| 日本一区二区三区在线播放| 五月天开心婷婷| 伊人久久国产精品| 999精品网| av在线不卡电影| 国产欧美成人xxx视频| 国产黄色片免费观看| 国产视频一区三区| 成人在线观看一区| 欧美精品一区二区三区在线看午夜| 国产日产精品一区二区三区的介绍| 免费在线观看a| 68精品久久久久久欧美| 天天干在线视频论坛| 国产视频手机在线播放| 国产一级免费av| 鲁啊鲁视频在线精品| 亚洲老头老太hd| 日韩成人影音| 99thz桃花论族在线播放| 国产精品99久久久久久久久久久久| 免费视频拗女稀缺一区二区| 蜜桃传媒一区二区亚洲av| 亚洲欧美日韩中文在线| 欧美sm一区| 日韩午夜精品视频| 久久精品网站视频| 亚洲国产中文字幕在线| 国产精品一区二区av白丝下载| 日韩久久精品电影| 日韩免费在线| 国产三级生活片| 国产精品美女一区二区视频| 亚洲视频国产| 在线免费色视频| 久久视频在线直播| 亚洲熟妇av一区二区三区| 少妇av一区二区| 亚洲国产婷婷综合在线精品| 97久久精品| 卡通动漫亚洲综合| 成人三级毛片| h在线观看视频免费网站| 欧美在线免费观看视频| 三年中国国语在线播放免费| 国产精品免费看久久久香蕉| 亚洲一区二区激情| 欧美国产大片| 在线亚洲国产精品网| 泷泽萝拉在线播放| 日本妇乱大交xxxxx| aa在线视频| 日韩欧美a级片| 91麻豆蜜桃一区二区三区| 国产一区二区三区成人| 亚洲大片精品永久免费| 欧美精品一区二区三区久久久| 日韩免费高清| 日韩在线播放一区二区| 欲香欲色天天天综合和网| 欧美白人最猛性xxxxx69交| 在线播放日韩精品| 国产精品一级视频| 久久国产高清| 亚洲va电影大全| 国产真实精品久久二三区| 99久久精品无码一区二区毛片| 超碰在线免费播放| 天天在线女人的天堂视频| 免费看欧美美女黄的网站| 中文在线不卡| 污网站在线看| 亚洲午夜激情| 色婷婷视频在线观看| 欧美一区亚洲一区| 亚洲男女av一区二区|