系列文章之二: Make Best Use of Our Tools 工欲善其事,必先利其器。這一節我談的就是我們用于研究 IL 的工具。 第一" name="description" />

IL系列文章之二:MakeBestUseofOurTools

發表于:2007-05-25來源:作者:點擊數: 標簽:之二文章系列
IL MI LY: 宋體; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系列文章之二: Make Best Use of Our Tools 工欲善其事,必先利其器。這一節我談的就是我們用于研究 IL 的工具。 第一

ILMILY: 宋體; mso-bidi-font-size: 10.5pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系列文章之二:

Make Best Use of Our Tools

工欲善其事,必先利其器。這一節我談的就是我們用于研究IL的工具。

第一篇文章貼出來之后,網上有朋友問我“能不能看到c#程序的IL代碼?”??磥磉€有些朋友對IL的編譯與反編譯還不太熟悉,所以我個人認為寫一篇關于工具的文章還是有必要的。我們的工具主要有三個,第一個是dumpbin,可以把exe,obj,dllbump出來然我們它們的PE結構,關于PE結構的討論前一段時間比較熱,網絡雜志上都有很多資料。(如果你先麻煩懶得去找的話,那你就等著什么時候我也來寫一篇吧J)。另外兩個是ilasmildasm,上次的文章中我們已經提到過了,分別是IL的編譯器和反編譯器。dumpbin, ilasm的說明已經比較詳細了。你可以啟動Visual Studio .NET命令提示,鍵入“dumpbin /?”,“ilasm /?”或“ildasm /?”,Enter,就可以看到在三個應用程序的命令行幫助了。更為詳細的MSDN資料如下:

dumpbinms-help://MS.VSCC/MS.MSDNVS.2052/vccore/html/_core_dumpbin_reference.htm

ilasmms-help://MS.VSCC/MS.MSDNVS.2052/cptools/html/cpconmsilassemblerilasmexe.htm

ildasmms-help://MS.VSCC/MS.MSDNVS.2052/cptools/html/cpconmsildisassemblerildasmexe.htm

(不過你要安裝了Visual Studio.NET整合的MSDN才能看到。)

這些我都不想再說了,自己去看吧。我下面要講的是一個不太容易被人們發現的東西——ildasm的高級選項。

         你在Visual Studio .NET命令提示下輸入“ildasm /?”看看有什么東西,然后在輸入“ildasm /ADV /?”再看看多了什么東西(ADV就是Advanced的意思)。我們第一個輸入下是看不到ADV選項的,在第二個輸入下我們看到了多出了幾個高級選項。這些高級選項對于那些以.net平臺為目標的工具開發者很有益處。

         可供選擇的命令行高級參數如下:

/ADV 以高級方式啟動ildasm,在你啟動ildasm后“視圖”菜單中會出現一些高級選項。如果你是想使用命令行的方式進行反編譯的話,“/ADV”必須寫在其它選項前面前面,如“/ADV /CLASSLIST”等。

/STATS 顯示鏡像文件(你就把它理解為被你反編譯的文件好了)的統計信息。

/CLASSLIST 包括本模塊中定義的類的列表。

/ALL 包括 /HEADER, /BYTES, /STATS, /CLASSLIST, /TOKENS。

/METADATA[=<specifier>] 顯示<specifier>所指定的MetaData,<specifier>包括:

MDHEADER 顯示MetaData header包含的信息和大小。

HEX 顯示更多十六進制表示的內容。

CSV 以逗號分隔的形式顯示header的大小。(這里我沒搞太懂L。)

UNREX 顯示無法分析的外部對象。

VALIDATE metadata的一致性進行驗證。(對于metadata我以后會有文章介紹。)

         OK!差不多了,就先寫到這里吧。

原文轉自:http://www.anti-gravitydesign.com

評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97