CLR探索系列:託管PE/COFF文件格式完全解剖

一直都想寫篇文章來記錄下我對託管PE文件的研究。無奈一直沒有時間來敲下這篇文章。
在這篇文章裏,我不去介紹windowsPE文件的具體格式,也不去介紹一個託管或者是非託管PE文件的加載運行方式,更加不去介紹一個PE文件裏面的各個頭部以及整體結構的各個部分的含義。

 

而是側重於介紹,基於託管環境下,DotNet對基本的PE/CoFF文件格式做了那些擴充,CLR頭部介紹,以及元數據和IL代碼詳析解析。主要側重從靜態文件的角度,來剖析DotNet下最基本的模塊的結構,以及這樣的結構如何適應一個託管的環境。

 

擬把PE文件格式裏裏外外從上到下一點一點的完全解剖一遍。

 

首先,還是從一段C#代碼開始:


      
class Program

      {

        public const int conField=122*1119;

        public readonly int roField;

 

        private int _property;

        public int Property

        {

            get {return _property; }

            set{_property = value; }

        }

 

        static void Main(string[] args)

        {

            (new Program()).Method();

        }

 

        public void Method()

        {

            System.Console.ReadLine();

        }       

}

之所以定義這麼多類型和字段,主要是爲了在解說託管PE文件格式的時候,元數據表中相關的表都會出現相關記錄。


待續未完,敬請關注。 ^_^

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章