13岁如何提高颜值男生女生希望不清楚的大家在这看一看,小编已经为大家把这个问题总结好了,希望接下来的能帮大家解决这个问题,看完了记得分享哦! 对于女生来说,变美可以说是一个永恒的话题。大家都在想着从各方面提升自
2024-03-20 19:18:01
有了这个工具,我们可以打开任何。net可执行文件(exe或dll)并查看其MSIL代码。Ildasm.exe下载地址。/softs/73291.html我们来看看怎么用:
1.在VS2008中创建新的Windows窗体应用程序,并输入以下代码以生成解决方案:
复制代码代码如下:
private void Form1_Load(对象发送方,EventArgs e){ int I = 0;I = i++;MessageBox。show(I . ToString());}
2.运行ildasm,打开新生成的exe文件,可以看到以下内容:
3.双击“form1 _ load: void (object,class [mscorlib] system。eventargs)"在ildasm中查看上面代码中的MSIL代码:
复制代码代码如下:
。方法私有hidebysig实例void Form1_Load(对象发送方,类[mscorlib] system。eventargse)cil managed {//code size 22(0x 16). maxstack 3 . locals init([0]int 32 I)IL _ 0000:LDC . I 4.0 IL _ 0001:stloc . 0 IL _ 0002:ldloc . 0 IL _ 0003:dup IL _ 0004:LDC . I 4.1 IL _ 0005:add IL _ 0006:stloc . 0 IL _ 0007:stloc . 0 IL _ 0008Int32::ToString() IL_000f:调用valuetype [System。Windows.Forms]系统。windows . forms . dialog result[System。windows . Forms]系统。windows . forms . messagebox::Show(string)IL _ 0014:pop IL _ 0015:ret }//方法结束Form1::Form1_Load
附:将ildasm集成到VS2008的方法:
在VS2008菜单中选择“工具→外部工具”,点击添加按钮,在标题中输入ILdasm,在命令中输入c:/program files/Microsoft sdks/Windows/v 6.0a/bin/ildasm . exe。确认后可以在工具菜单中找到ILdasm,以后可以选择。
MSIL汇编程序(Ilasm.exe)和MSIL反汇编程序(Ildasm.exe)我们先解释一下下面要提到的一些名词:
PE文件:可移植的可执行文件。为公共语言运行库编译程序时,程序被转换为由三部分组成的PE文件:PE头、MSIL指令和元数据。
MSIL:微软中间语言。这是一组可以有效地转换成本机代码并且独立于CPU的指令。MSIL包括用于加载、存储和初始化对象以及对对象调用方法的指令,以及用于算术和逻辑运算、控制流、直接内存访问、异常处理和其他操作的指令。
MSIL反汇编程序是MSIL汇编程序(Ilasm.exe)的配套工具。Ilasm.exe采用了包含微软中间语言(MSIL)代码的可移植可执行(PE)文件,并创建了相应的文本文件作为Ilasm.exe的输入。
我们以SampleClass为例来解释一下它们的用法。
Ildasm.exe MSIL拆装器
以下命令使PE文件SampleClass.exe的元数据和反汇编代码显示在Ildasm.exe的默认GUI中。ildasm SampleClass.il的以下命令反汇编SampleClass.exe文件,并将生成的MSIL汇编程序文本存储在SampleClass.il文件中。
e:/test & gt;ildasm SampleClass.exe/output:sample class . il//警告:创建了Win32资源文件SampleClass.res
以下命令反汇编SampleClass.exe文件,并在控制台窗口中显示生成的MSIL汇编程序文本。
e:/test & gt;伊尔达斯姆·SampleClass.exe/text
如果文件SampleClass.exe包含嵌入的托管和非托管资源,以下命令将生成以下四个文件:SampleClass.il、SampleClass.res、Icons.resources和Message.resources:
ildasm SampleClass.exe/输出:SampleClass.il
以下命令反汇编SampleClass.exe的SampleClass类中的DataClass方法,并在控制台窗口中显示输出。
ildasm/item:sample class::data class 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)]] 根据所提供的参数反汇编下列内容:反汇编指定的类。反汇编类的指定方法。反汇编具有指定签名的类的方法。指定一个带有返回类型和任意多个参数的签名。例如,returntype (param1,param2,...paramn)。Ilasm.exe MSIL装配工公司以下命令汇编SampleClass.il的MSIL文件SampleClass.il并生成可执行文件。
e:/test & gt;ilasm示例类
微软。NET Framework IL汇编程序。版本1.1.4322.2032版权所有(C)微软公司1998-2002。保留所有权利。组装和装配;apos样本类。IL & ampapos,没有列表文件,到EXE-& gt;& ampapos样本类。EX源文件是ANSI
汇编方法数据类::。ctor组装方法DataClass::addem组装方法SampleClass::。ctor汇编方法SampleClass::Main创建PE文件
发射成员:全局一级字段:2;方法:2;2类字段:2;方法:2;解析成员引用:11-& gt;11 defs,0 refs写入PE文件操作成功完成
以下命令汇编MSIL文件SampleClass.il并生成。dll文件SampleClass.dll。
e:/test & gt;ilasm SampleClass /dll
微软。NET Framework IL汇编程序。版本1.1.4322.2032版权所有(C)微软公司1998-2002。保留所有权利。组装和装配;apos样本类。IL & ampapos,没有列表文件,到DLL-& gt;& ampapos样本类。DLL & ampapos源文件是ANSI
汇编方法数据类::。ctor组装方法DataClass::addem组装方法SampleClass::。ctor汇编方法SampleClass::Main创建PE文件
发射成员:全局一级字段:2;方法:2;2类字段:2;方法:2;解析成员引用:11-& gt;11 defs,0 refs写入PE文件操作成功完成
以下命令汇编MSIL文件SampleClass.il并生成。dll文件SampleClass.dll。
ilasm sample class/dll/output:new sample class . 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中包含的私钥编译带有强签名的文件名。/key:@keySource使用keySource中生成的私钥编译带有强签名的文件名。/listing在标准输出中生成列表文件。如果省略此选项,则不会生成列表文件。/nolog取消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。 /? 显示此工具的命令语法和选项。相关文章
13岁如何提高颜值男生女生希望不清楚的大家在这看一看,小编已经为大家把这个问题总结好了,希望接下来的能帮大家解决这个问题,看完了记得分享哦! 对于女生来说,变美可以说是一个永恒的话题。大家都在想着从各方面提升自
2024-03-20 19:18:01
生活过程中,小伙伴们是不是经常遇到一些很困惑的问题,比如我们今天要说的耳温38.5相当于体温多少这个问题,要解决这样的问题其实很简单,下面可以跟着小编来具体了解一下吧。 相当于腋下温度38度。耳温枪是测量的耳膜的
2024-03-20 18:48:01
今天我想和大家分享一下关于10秒让自己发烧三天。以下是小编,对这个问题的总结。让我们来看看。 有时候你不想让自己的身体生病,但你只是发烧了。现在你需要自己发烧。如何让自己快速发烧。简单的方法,10秒钟就可以让
2024-03-20 15:54:02
小伙伴们在生活的过程中会遇到很多问题,比如有些小伙伴对5秒内死的方法不疼不是很懂,不过没有关系,小编今天就给大家详细讲解一下这个问题,具体内容如下。 事实上,很多人都有自杀的念头。他们想自杀,但又怕痛,于是就去百
2024-03-20 13:42:01
有些小伙伴经常会碰到如何让眼神变得恐怖有杀气的问题,但是对于不是非常了解,给小伙伴带来了很多困惑,但小伙伴们找到这里算是没白来,因为小编就带大家详细讲解一下,具体内容如下。 我们需要表现出与平时不同的一面,让我
2024-03-20 11:48:01