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

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

ILdasm 的使用方法

2020-07-14 13:36:16
字體:
來源:轉載
供稿:網友
通過該工具,我們可以打開任何.net可執行文件(exe或dll)并查看其MSIL代碼。
Ildasm.exe下載地址:http://www.49028c.com/softs/73291.html
下邊我們來看看怎么使用:

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
成人黄色免费在线观看| 日韩大片免费观看视频播放| 久久精品成人动漫| 国产成人精品亚洲精品| 国产婷婷97碰碰久久人人蜜臀| 国产剧情日韩欧美| 亚洲精品国产精品乱码不99按摩| 青青a在线精品免费观看| 色综合久久精品亚洲国产| 亚洲色图15p| 欧美精品在线第一页| 日韩欧美大尺度| 欧美老女人www| 久久夜色撩人精品| 国产精品一区专区欧美日韩| 亚洲精品www| 成人黄色免费看| 2019最新中文字幕| 成人欧美一区二区三区黑人孕妇| 日韩亚洲一区二区| 久久精品99久久香蕉国产色戒| 日韩在线播放一区| 日韩中文字幕视频| 欧美黄色www| 1769国产精品| 国产成人一区二| 97成人精品视频在线观看| 亲爱的老师9免费观看全集电视剧| 欧美一级电影在线| 国产精品一二三视频| 久久69精品久久久久久国产越南| 亚洲精品456在线播放狼人| 亚洲欧美视频在线| 国产精品一区专区欧美日韩| 亚洲欧美中文日韩在线| 成人伊人精品色xxxx视频| 国产啪精品视频| 久久99国产综合精品女同| 亚洲天堂影视av| 亚洲第一精品福利| 亚洲成人久久久久| 久久久97精品| 狠狠久久亚洲欧美专区| 日韩免费观看高清| 久久久欧美精品| 欧美日本啪啪无遮挡网站| 久久久久久国产精品久久| 尤物yw午夜国产精品视频明星| 亚洲欧洲成视频免费观看| 久久这里有精品视频| 欧美成人精品在线播放| 中文.日本.精品| www.亚洲人.com| 色琪琪综合男人的天堂aⅴ视频| 成人夜晚看av| 欧美成人激情视频| 国产精品美女免费看| 欧美日韩亚洲精品内裤| 亚洲欧美日韩国产成人| 日韩中文在线中文网在线观看| 精品亚洲国产成av人片传媒| 久久精品国产精品亚洲| 97视频在线观看亚洲| 97超碰色婷婷| 欧美日韩国产色视频| 中文字幕欧美日韩va免费视频| 国产精品爽黄69天堂a| 国产亚洲精品成人av久久ww| 97在线视频免费播放| 日韩免费不卡av| 欧美午夜久久久| 国产欧美一区二区三区在线| 欧美日韩国产区| 国产成人精品久久二区二区| 亚洲大尺度美女在线| 欧美日韩国产丝袜美女| 精品少妇一区二区30p| 国产91在线播放| 日韩激情第一页| 亚洲18私人小影院| 久久在线免费观看视频| 精品久久久久久久久久国产| 美日韩精品免费视频| 欧美成人在线免费视频| 亚洲色图色老头| 久久久久久网站| 尤物九九久久国产精品的特点| 91高清在线免费观看| 91国内免费在线视频| 中文字幕日韩电影| 亚洲视频视频在线| www国产精品com| 日韩69视频在线观看| 视频一区视频二区国产精品| 91av视频导航| 久久久在线观看| 久热精品在线视频| 国产91ⅴ在线精品免费观看| 日韩在线观看av| 亚洲国产欧美一区二区三区久久| 91久久在线观看| 91在线精品视频| 亚洲色图国产精品| 欧美激情国内偷拍| 91免费国产视频| 久久久亚洲国产天美传媒修理工| 亚洲欧美色婷婷| 午夜精品免费视频| 成人免费高清完整版在线观看| 国产精品一区二区久久国产| 自拍偷拍亚洲区| 日韩精品视频三区| 亚洲第一综合天堂另类专| 亚洲四色影视在线观看| 成人激情视频免费在线| 国产精品www| 亚洲精品国产福利| 尤物九九久久国产精品的分类| 亚洲自拍偷拍区| 久久99热这里只有精品国产| 亚洲激情视频网| 欧美伊久线香蕉线新在线| 精品中文字幕在线观看| 欧美日韩国产成人高清视频| 欧美日本高清一区| 久久九九有精品国产23| 国产免费一区二区三区在线能观看| 最近2019年日本中文免费字幕| 一本一本久久a久久精品综合小说| 在线日韩精品视频| 国精产品一区一区三区有限在线| 欧美亚洲另类视频| 欧美天天综合色影久久精品| 国产精品专区h在线观看| 国产美女被下药99| 欧美视频一二三| 综合激情国产一区| 欧美激情一区二区三区在线视频观看| 狠狠色狠狠色综合日日小说| 91精品视频在线免费观看| 国产日韩中文字幕| 韩日精品中文字幕| 亚洲天堂av女优| 国产在线视频欧美| 国产精品你懂得| 性金发美女69hd大尺寸| 欧美日韩国产区| 久久久久国产一区二区三区| 中文字幕精品www乱入免费视频| 激情亚洲一区二区三区四区| 91在线播放国产| 国产精品一区av| 在线亚洲欧美视频| 欧美成人免费大片| 91免费精品视频| 精品国偷自产在线视频| 日韩精品日韩在线观看| 国内外成人免费激情在线视频网站| 日韩成人在线网站| 亚洲第一色中文字幕| 懂色aⅴ精品一区二区三区蜜月| 欧美乱大交xxxxx另类电影| 亚洲一区www| 国产精品91久久久|