()程序員用高級OO語言(C#VBNETVCNetCobolPython……)編寫代碼這些代碼經過Net編譯器(比如Visual StudioNet)編譯成統一的MSIL(Microsoft Intermediate Language)NET應用程序是以MSIL的形式出現的只有在程序執行的時候才通過即時編譯器JIT(JustInTime)被編譯為本機代碼
()程序執行的時候由JIT裝入程序的MSILJIT同時作了很多其他的工作(裝載相應的運行庫安全檢測……) 最後JIT將轉化成本地機器碼(EXE或者DLL)
()本地機器碼被裝入內存開始執行
就是通過這幾個步驟net實現了編程語言無關(都轉化成MSIL)平台無關(執行的時候根據本地配置生成相應的機器碼)安全性(JIT裡面做了很多檢測)
作為Cracker可以用Net Framework SDK自帶的工具進行MSIL和EXE(DLL)之間的互換利用FrameworkSDK\Bin\目錄下的ilasm和ildasm()ilasm示例下面的命令對 MSIL 文件 myTestFileil 進行匯編並產生可執行文件 myTestFileexe ilasm myTestFile下面的命令對 MSIL 文件 myTestFileil 進行匯編並產生 dll 文件 myTestFiledll ilasm myTestFile /dll下面的命令對 MSIL 文件 myTestFileil 進行匯編並產生 dll 文件 myNewTestFiledll ilasm myTestFile /dll /outputmyNewTestFiledll()ildasm示例下面的命令使 PE 文件 MyHelloexe 的元數據和反匯編代碼顯示在 Ildasmexe 的默認 GUI 中
ildasm myHelloexe下面的命令對 MyFileexe 文件進行反匯編並將結果 MSIL 匯編程程序文本存儲在 MyFileil 文件中
ildasm MyFileexe /outputMyFileil下面的命令對 MyFileexe 文件進行反匯編並將結果 MSIL 匯編程序文本顯示到控制台窗口中
ildasm MyFileexe /text如果文件 MyAppexe 包含嵌入的托管和非托管資源則下面的命令將產生以下 個文件MyAppilMyAppresIconsresources 和 Messageresourcesildasm MyAppexe /outputMyAppil下面的命令對 MyFileexe 的 MyClass 類中的 MyMethod 方法進行反匯編並將輸出顯示到控制台窗口中
ildasm /itemMyClassMyMethod MyFileexe /text在上面的示例中可能有幾個具有不同簽名的 MyMethod 方法下面的命令對返回類型為 void 且帶有參數 int 和 Systemstring 的
MyMethod 方法進行反匯編
ildasm /itemMyClassMyMethod(void(intclass SystemString)) MyFileexe /text
From:http://tw.wingwit.com/Article/program/net/201311/11319.html