[C#, CSharp, C Sharp 教學 教程 教材 Tutorial] .Net Framework程式開發與執行(.Net Framework Program Develop & Execute)
YehYeh\'s Notepad yehyeh@gmail.com 

[C#, CSharp] .Net Framework程式開發與執行

執行過程

  • Windows上的執行檔(檔名.exe)都要遵循Microsoft PECOFF格式(Common Object File Format),作業系統才能正確的載入並執行
    • 標準的Microsoft PE執行檔含headers、native image sections(.data、.rdata、.rsrc、.text、...)
    • Microsoft PE可擴充Section成為.Net PE。
    • 安裝.net framework時,會將OS內附的PE Loader換成認得.Net PE檔的Loader。
    • Loader會判斷PE檔有無CLR header,有則將相關的Sections交由CLR執行。
    • .Net程式可以直接以執行檔方式執行。
    • dumpBin.exe為VC++的工具,可查看PE檔的內容。
PE格式比較


常見的PE Setctions
.arck 最初構建訊息
.bss 未初始化的資料
.crt 唯讀的C執行期資料
.data 已經初始化的資料
.debug 除錯用資料
.didata 延遲輸入名稱表格
.edata 輸出名稱表格
.idata 輸入名稱表格
.pdata 異常訊息
.rdata 唯讀的執行期資料
.reloc 重定位資料
.rsrc 資源
.text .exe、.dll可執行的程式碼
.tls 執行緒局部儲存體
.xdata 異常處理表
Δ 回到最上方

使用dumpBin.exe查看PE檔的內容

  • 1先將下面的程式編譯成執行檔HelloWorld.exe
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace HelloWorld
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Hello World!!");
            }
        }
    }
    
  • 2接下來在DOS命令列中輸入:
    dumpbin HelloWorld.exe /all >> HelloWorld.bin
    
  • 3再用文書編輯軟體打開HelloWorld.bin即可觀看HelloWorld的PE檔內容 HelloWorld PE
Δ 回到最上方