逆向第三課(深入.NET程式運行原理)

來源:互聯網
上載者:User

標籤:

註:本文適用讀者範圍,對Windows下的PE檔案有一定認識的朋友

 

一、 名詞解釋

a)        CLR:

通用語言執行平台(Common LanguageRuntime),CLR時.NET架構的核心內容之一,可以把它看為一套標準資源,可以被任何.NET程式使用。它包括:物件導向的編程模型、安全模型、類型系統(CTS)、所有.NET基類、程式執行以及代碼管理等。

b)        JIT:

即時編譯(Just In-Time compile),這是.NET運行可執行程式的基本方式,也就是在需要啟動並執行時候,才將對應的IL代碼編譯為本機指令。傳入JIT的是IL代碼,輸出的是機器碼,所以部分加密軟體通過掛鈎JIT來進行IL加密(目前該技術運用得比較成熟的是Rick編寫的”DNGuard HVM”此款加密保護軟體),同時又保證程式正常運行。

c)        中繼資料:

描述.NET程式運行所必需的一切資訊的資料,包括版本、類型的各個成員(方法、欄位、屬性、事件)等。一個檔案要成為有效.NET可執行程式,必須包含正確的中繼資料定義。由於中繼資料被儲存在PE檔案中,在逆向中成為擷取來源程式資訊的重要來源,因此對中繼資料的加密也是.NET加密軟體的重點

d)        MSIL:

微軟中繼語言(MicroSoft Intermediate Language),也被成為MSIL彙編,通常也叫做IL代碼。託管語言在執行時,都是將我們的(C#,VB)編譯為MSIL語言,再編譯為本地機器語言執行。熟練掌握MSIL語言對逆向.NET程式有著至關重要的作用。

 

二、.NET程式運行流程

         1.我們用PEID開啟一個普通的Windows下的非託管PE映像,查看檔案的輸入表資訊,可以看到,一個普通的Windows下的非託管PE映像,程式啟動時候會調用很多系統dll中的匯入函數。  

 

2.我們再用PEID開啟一個託管的PE映像,可以很清晰地看到,.NET程式的輸入表和Windows下的PE映像的輸入表是有非常大的區別的!.NET程式輸入表中只存放著”mscoree.dll”中的”_CorExeMain”這個匯入函數!意味著.NET程式啟動時候將首先執行函數”_corExeMain”,該函數主要進行了以下幾個操作:

         a、通過查看PE檔案的中繼資料,找出.NET檔案是基於哪個版本建立的

         b、找出作業系統中正確版本的CLR的路徑

         c、載入並初始化CLR

 

 

 

..NET程式集載入演算法總結如下:

         A、使用者執行一個.NET程式集

         B、Windows載入器查看AddressOfEntityPoint域,並找到PE映像中的.Text段

         C、位於AddressOfEntityPoint位置上的位元組只是一個JMP指令,這個指令跳轉到mscoree.dll中的一個匯入函數.

         D、將執行控制轉移到mscoree.dll中的函數_ CorExeMain中,這個函數將啟動CLR並且把執行控制轉移到程式集的進入點

E、  JIT開始編譯並執行進入點
 

三、CLR與JIT在程式運行中的作用

By:涼遊淺筆深畫眉QQ:381400744

 

2015.03.08

 

逆向第三課(深入.NET程式運行原理)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.