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文件格式的时候,元数据表中相关的表都会出现相关记录。


待续未完,敬请关注。 ^_^

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