亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 編程設計 > 正文

ILdasm 的使用方法

2020-06-27 15:38:55
字體:
來源:轉載
供稿:網友
通過該工具,我們可以打開任何.net可執行文件(exe或dll)并查看其MSIL代碼。
Ildasm.exe
下邊我們來看看怎么使用:

1.在VS2008中新建一個Windows窗體應用程序,輸入如下代碼后生成解決方案:


復制代碼
代碼如下:

private void Form1_Load(object sender, EventArgs e)
{
int i = 0;
i = i++;
MessageBox.Show(i.ToString());
}


2.運行ildasm,打開剛生成的exe文件,可以看到如下內容:

3.在ildasm中雙擊"Form1_Load: void(object,class [mscorlib]System.EventArgs)"即可看到上邊代碼的MSIL代碼:


復制代碼
代碼如下:

.method private hidebysig instance void Form1_Load(object sender,
class [mscorlib]System.EventArgs e) cil managed
{
// 代碼大小 22 (0x16)
.maxstack 3
.locals init ([0] int32 i)
IL_0000: ldc.i4.0
IL_0001: stloc.0
IL_0002: ldloc.0
IL_0003: dup
IL_0004: ldc.i4.1
IL_0005: add
IL_0006: stloc.0
IL_0007: stloc.0
IL_0008: ldloca.s i
IL_000a: call instance string [mscorlib]System.Int32::ToString()
IL_000f: call valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
IL_0014: pop
IL_0015: ret
} // end of method Form1::Form1_Load


附:將ildasm集成到VS2008中的方法:

在VS2008菜單中選擇"工具→外部工具",點擊添加按鈕,在標題中輸入ILdasm,命令中輸入C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin/ildasm.exe,確定后在工具菜單中就能找到ILdasm了,以后只要選擇它就能運行ILdasm。

MSIL匯編程序(Ilasm.exe)和MSIL反匯編程序(Ildasm.exe)

 

先來解釋下文要提到的幾個名詞:

PE文件:可移植可執行文件。當為公共語言運行庫編譯程序時,該程序轉換為由三部分組成的 PE 文件,PE 標頭、MSIL 指令、元數據。

MSIL: Microsoft 中間語言。這是一組可以有效地轉換為本機代碼且獨立于 CPU 的指令。MSIL 包括用于加載、存儲和初始化對象以及對對象調用方法的指令,還包括用于算術和邏輯運算、控制流、直接內存訪問、異常處理和其他操作的指令。


MSIL 反匯編程序是 MSIL 匯編程序 (Ilasm.exe) 的伙伴工具。Ildasm.exe 采用包含 Microsoft 中間語言 (MSIL) 代碼的可移植可執行 (PE) 文件,并創建相應的文本文件作為 Ilasm.exe 的輸入。

還是以SampleClass為例來解釋它們的用法。

MSIL反匯編程序(Ildasm.exe)

下面的命令使 PE 文件 SampleClass.exe 的元數據和反匯編代碼顯示在 Ildasm.exe 的默認 GUI 中。
ildasm SampleClass.exe
下面的命令對 SampleClass.exe 文件進行反匯編,并將結果 MSIL 匯編程程序文本存儲在 SampleClass.il 文件中。

E:/test>ildasm SampleClass.exe /output:SampleClass.il
// WARNING: Created Win32 resource file SampleClass.res

下面的命令對 SampleClass.exe 文件進行反匯編,并將結果 MSIL 匯編程序文本顯示到控制臺窗口中。

E:/test>ildasm SampleClass.exe /text

如果文件 SampleClass.exe 包含嵌入的托管和非托管資源,則下面的命令將產生以下 4 個文件:SampleClass.il、SampleClass.res、Icons.resources 和 Message.resources:

ildasm SampleClass.exe /output:SampleClass.il

下面的命令對 SampleClass.exe 的 SampleClass 類中的 DataClass 方法進行反匯編,并將輸出顯示到控制臺窗口中。

ildasm /item:SampleClass::DataClass SampleClass.exe /text

參數列表:

下列選項可用于 .exe、.dll、.obj 和 .lib 文件。

/output:filename 創建具有指定 filename 的輸出文件,而不是在對話框中顯示結果。
/text 將結果顯示到控制臺窗口,而不是顯示在對話框中或顯示為輸出文件。
/? 顯示此工具的命令語法和選項。

下列附加選項可用于 .exe 和 .dll 文件。

/bytes 以十六進制格式顯示作為指令注釋的實際字節。
/linenum 包含對原始源行的引用。
/nobar 取消反匯編進度指示器彈出窗口的顯示。
/pubonly 只反匯編公共類型和公共成員。等效于 /visibility:PUB。
/quoteallnames 在單引號中包含所有名稱。
/raweh 以原始格式顯示異常處理子句。
/source 顯示作為注釋的原始源行。
/tokens 顯示類和成員的元數據標記。
/visibility:vis [+vis ...] 只反匯編具有指定可見性的類型或成員。以下是 vis 的有效值。 PUB Public PRI Private FAM Family ASM Assembly FAA Family 和 Assembly FOA Family 或 Assembly PSC Private Scope

下列選項僅對用于文件或控制臺輸出的 .exe 和 .dll 文件有效。

/all 指定 /header/bytes/tokens 選項的組合。
/header 在輸出中包含文件頭信息。
/noil 取消 MSIL 程序集代碼輸出。
/unicode 對輸出使用 Unicode 編碼。
/utf8 對輸出使用 UTF-8 編碼。默認值是 ANSI。

下列選項僅對用于文件或控制臺輸出的 .exe、.dll、.obj 和 .lib 文件有效。

/item:class[::method [(sig)]] 根據所提供的參數反匯編下列內容:
  • 反匯編指定的 class。
  • 反匯編 class 的指定 method。
  • 反匯編具有指定簽名 sigclassmethod。指定具有返回類型的簽名和所需的任意多個參數。例如,returntype (param1, param2,..paramn)。

MSIL匯編程序(Ilasm.exe)

下面的命令對 MSIL 文件 SampleClass.il 進行匯編并產生可執行文件 SampleClass.exe。

E:/test>ilasm SampleClass

Microsoft (R) .NET Framework IL Assembler.  Version 1.1.4322.2032
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
Assembling 'SampleClass.IL' , no listing file, to EXE --> 'SampleClass.EX
Source file is ANSI

Assembled method DataClass::.ctor
Assembled method DataClass::addem
Assembled method SampleClass::.ctor
Assembled method SampleClass::Main
Creating PE file

Emitting members:
Global
Class 1 Fields: 2;      Methods: 2;
Class 2 Fields: 2;      Methods: 2;
Resolving member refs: 11 -> 11 defs, 0 refs
Writing PE file
Operation completed successfully

下面的命令對 MSIL 文件 SampleClass.il 進行匯編并產生 .dll 文件 SampleClass.dll。

E:/test>ilasm SampleClass /dll

Microsoft (R) .NET Framework IL Assembler.  Version 1.1.4322.2032
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
Assembling 'SampleClass.IL' , no listing file, to DLL --> 'SampleClass.DLL'
Source file is ANSI

Assembled method DataClass::.ctor
Assembled method DataClass::addem
Assembled method SampleClass::.ctor
Assembled method SampleClass::Main
Creating PE file

Emitting members:
Global
Class 1 Fields: 2;      Methods: 2;
Class 2 Fields: 2;      Methods: 2;
Resolving member refs: 11 -> 11 defs, 0 refs
Writing PE file
Operation completed successfully

下面的命令對 MSIL 文件 SampleClass.il 進行匯編并產生 .dll 文件 SampleClass.dll。

ilasm SampleClass /dll /output:newSampleClass.dll

參數列表:

/alignment=integer 將 FileAlignment 設置為由 NT Optional 標題中的 integer 指定的值。如果在文件中指定了 .alignment IL 指令,則此選項將重寫它。
/base=integer 將 ImageBase 設置為由 NT Optional 標題中的 integer 指定的值。如果在文件指定了 .imagebase IL 指令,則此選項將重寫它。
/clock 為指定的 .il 源文件測量并報告下列編譯時間(以毫秒為單位): 總運行時間 執行后面的所有特定操作所花費的總時間。 啟動 加載并打開文件。

分析

發出 MD 發出元數據。 定義引用解析 解析對文件中的定義的引用。

修正和鏈接

CEE 文件生成 在內存中生成文件映像。 PE 文件寫入 將映像寫入 PE 文件。
/debug 包括調試信息(局部變量名和參數名以及行號)。
/dll 生成 .dll 文件作為輸出。
/exe 生成可執行文件作為輸出。這是默認值。
/flags=integer 將 ImageFlags 設置為由公共語言運行庫標題中的 integer 指定的值。如果在文件中指定了 .corflags IL 指令,則此選項將重寫它。有關 integer 的有效值的列表,請參見 CorHdr.h 中的 COMIMAGE_FLAGS。
/key:keyFile 使用 keyFile 中包含的私鑰編譯具有強簽名的 filename
/key:@keySource 使用在 keySource 中生成的私鑰編譯具有強簽名的 filename。
/listing 在標準輸出上生成列表文件。如果省略此選項,則不生成列表文件。
/nologo 取消顯示 Microsoft 啟動標題。
/output:file.ext 指定輸出文件名和擴展名。默認情況下,輸出文件名與第一個源文件名相同。默認擴展名為 .exe。如果指定 /dll 選項,則默認擴展名為 .dll。
注意   指定 /output:myfile.dll 并不會設置 /dll 選項。如果不指定 /dll,則會生成名為 myfile.dll 的可執行文件。
/quiet 指定安靜模式;不報告程序集進度。
/resource:file.res 在生成的 .exe 或 .dll 文件中包括 *.res 格式的指定資源文件。使用 /resource 選項只能指定一個 .res 文件。
/subsystem=integer 將 subsystem 設置為由 NT Optional 標題中的 integer 指定的值。如果在文件中指定了 .subsystem IL 指令,則此命令將重寫它。有關 integer 的有效值的列表,請參見 winnt.h 中的 IMAGE_SUBSYSTEM。
/? 顯示此工具的命令語法和選項。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩加勒比精品一区| 亚洲伦理中文字幕| 欧洲日本亚洲国产区| 久久久久久久久久久国产| 久久亚洲国产精品成人av秋霞| 国产精自产拍久久久久久蜜| 激情久久av一区av二区av三区| 国产日韩精品在线| 日韩精品有码在线观看| 亚洲电影免费观看高清完整版在线| 欧美日韩国产精品一区二区三区四区| 国产精品a久久久久久| 国产乱人伦真实精品视频| 久久久久久久电影一区| 精品国产一区二区三区久久| 成人有码视频在线播放| 一区二区三区在线播放欧美| 亚洲乱码一区二区| 亚洲色图av在线| 超碰91人人草人人干| 色综合影院在线| 久久天堂电影网| 日本精品久久久| 久久久国产一区二区三区| 在线播放精品一区二区三区| 欧美裸体xxxx极品少妇| 成人网欧美在线视频| 亚洲自拍偷拍色片视频| 欧美床上激情在线观看| 国产不卡精品视男人的天堂| 亚洲激情视频在线播放| 成年无码av片在线| 国产精品久久久久久久7电影| 91在线观看免费观看| 欧美日韩xxx| 一本色道久久88综合亚洲精品ⅰ| 国产精品99导航| 欧美精品成人91久久久久久久| 欧美小视频在线| 欧美劲爆第一页| 欧美在线视频观看| 亚洲一区二区三区在线视频| 欧美成人黄色小视频| 成人夜晚看av| 中文字幕亚洲欧美| 91精品国产综合久久久久久蜜臀| 欧美性高潮在线| 久久亚洲国产精品| 日韩黄在线观看| 久精品免费视频| 国产精品久久久久秋霞鲁丝| 日韩中文字幕国产| 成人高清视频观看www| 精品国产1区2区| 成人国产精品日本在线| 一区二区在线视频| 国产成人综合av| 国产亚洲欧洲黄色| 欧美性色19p| www高清在线视频日韩欧美| 久久精品国产一区二区三区| 欧美性高跟鞋xxxxhd| 国产亚洲欧美视频| 91精品国产91久久| 精品av在线播放| 欧美激情亚洲综合一区| 8x拔播拔播x8国产精品| 日韩的一区二区| 91久久久久久久久久久| 97在线观看免费| 久久久之久亚州精品露出| 国产第一区电影| 欧美一区二区色| 日韩成人av网址| 午夜精品久久久久久99热| 欧美一区二区三区四区在线| 国a精品视频大全| 欧美wwwxxxx| 久久琪琪电影院| 欧美黄色www| 日本一区二区不卡| 国产精品久久久久久av福利| 日韩免费观看av| 欧美精品国产精品日韩精品| 国产免费一区二区三区在线观看| 成人国产在线视频| 午夜精品一区二区三区在线视| 国产日韩av在线播放| 欧美在线观看网站| 福利视频导航一区| 8x海外华人永久免费日韩内陆视频| 国产精品日韩av| 91在线免费视频| 国产精品羞羞答答| 亚洲视频一区二区三区| 日韩大陆毛片av| 日韩在线视频播放| 亚洲国产精品视频在线观看| 中文字幕国产精品| 欧美视频不卡中文| 国产精品色婷婷视频| 欧美小视频在线观看| 91丨九色丨国产在线| 国产这里只有精品| 国产精品美腿一区在线看| 国产一区二区日韩| 久久夜精品香蕉| 亚洲大胆人体在线| 欧美激情在线狂野欧美精品| 久久九九全国免费精品观看| 在线播放国产一区中文字幕剧情欧美| 日本久久久久久久久久久| 性欧美办公室18xxxxhd| 精品国内产的精品视频在线观看| 亚洲国产精品99久久| 在线播放日韩av| 亚洲视频在线观看视频| 日韩在线一区二区三区免费视频| 日韩精品免费观看| 性欧美视频videos6一9| 色av中文字幕一区| 欧美大全免费观看电视剧大泉洋| 福利一区福利二区微拍刺激| 亚洲色图欧美制服丝袜另类第一页| 欧美诱惑福利视频| 国产一区二区黑人欧美xxxx| 国产精品视频精品视频| 久国内精品在线| www.久久久久| 国产日产亚洲精品| 国语自产精品视频在线看| 久久久噜噜噜久噜久久| 欧美成人午夜免费视在线看片| 亚洲人午夜精品| 91av视频在线| 久久国产精品网站| 97国产在线视频| 亚洲а∨天堂久久精品喷水| 欧美国产在线视频| 欧美色另类天堂2015| 亚洲缚视频在线观看| 中文字幕av日韩| 中国china体内裑精亚洲片| 国语自产精品视频在线看一大j8| 高清欧美性猛交xxxx| 亚洲免费视频网站| 欧美成人精品在线观看| 中文字幕亚洲一区二区三区| 国产一区二区三区18| 欧美午夜美女看片| 国产成人97精品免费看片| 日韩av一区二区在线观看| 欧美在线精品免播放器视频| 欧美小视频在线观看| 日韩一区二区在线视频| www.99久久热国产日韩欧美.com| 青草青草久热精品视频在线网站| 久久天天躁狠狠躁夜夜av| 亚洲日本欧美中文幕| 超薄丝袜一区二区| 亚洲精品福利视频| 日韩av黄色在线观看| 在线观看日韩视频| 国产日韩欧美视频|