目录
article
元数据
元数据
源代码
using System;
namespace SimpleAssembly
{
/// <summary>
/// 创建一个包含私有成员、特性、方法的简单类型
/// </summary>
[Serializable]
class Program
{
private string _MyString;
public Program(string mystring)
{
_MyString = mystring;
}
public override string ToString()
{
return _MyString;
}
static void Main(string[] args)
{
Console.WriteLine("简单程序集");
Console.Read();
}
}
}
编译后生成 EXE 文件,用 ILDasm.exe 查看程序集的元数据。
ILDasm /ALL /METADATA /OUT=SimpleAssembly.ILDasm.log SimpleAssembly.exe
元数据(元信息)部分大致可以分为定义表、引用表和清单表。
- 定义表包含了自定义的类型,以及其内部的字段、方法和特性等。如元数据中的 TypeDef。
- 引用表包含了引用的类型清单和引用程序集清单,如 TypeRef 和 AssemblyRef 等。
- 清单表则列出了整个程序集包含的内容,如 Assembly 块等。
反汇编结果
点击查看反汇编结果
// Microsoft (R) .NET Framework IL Disassembler. Version 4.6.81.0
// ----- DOS Header:
// Magic: 0x5a4d
// Bytes on last page: 0x0090
// Pages in file: 0x0003
// Relocations: 0x0000
// Size of header (paragraphs):0x0004
// Min extra paragraphs: 0x0000
// Max extra paragraphs: 0xffff
// Initial (relative) SS: 0x0000
// Initial SP: 0x00b8
// Checksum: 0x0000
// Initial IP: 0x0000
// Initial (relative) CS: 0x0000
// File addr. of reloc table: 0x0040
// Overlay number: 0x0000
// OEM identifier: 0x0000
// OEM info: 0x0000
// File addr. of COFF header: 0x0080
// ----- COFF/PE Headers:
// Signature: 0x00004550
// ----- COFF Header:
// Machine: 0x014c
// Number of sections: 0x0003
// Time-date stamp: 0x56a640d9
// Ptr to symbol table: 0x00000000
// Number of symbols: 0x00000000
// Size of optional header: 0x00e0
// Characteristics: 0x0022
// ----- PE Optional Header (32 bit):
// Magic: 0x010b
// Major linker version: 0x30
// Minor linker version: 0x00
// Size of code: 0x00000800
// Size of init.data: 0x00000800
// Size of uninit.data: 0x00000000
// Addr. of entry point: 0x0000279a
// Base of code: 0x00002000
// Base of data: 0x00004000
// Image base: 0x00400000
// Section alignment: 0x00002000
// File alignment: 0x00000200
// Major OS version: 0x0004
// Minor OS version: 0x0000
// Major image version: 0x0000
// Minor image version: 0x0000
// Major subsystem version: 0x0006
// Minor subsystem version: 0x0000
// Size of image: 0x00008000
// Size of headers: 0x00000200
// Checksum: 0x00000000
// Subsystem: 0x0003
// DLL characteristics: 0x8560
// Size of stack reserve: 0x00100000
// Size of stack commit: 0x00001000
// Size of heap reserve: 0x00100000
// Size of heap commit: 0x00001000
// Loader flags: 0x00000000
// Directories: 0x00000010
// 0x00000000 [0x00000000] address [size] of Export Directory:
// 0x00002745 [0x0000004f] address [size] of Import Directory:
// 0x00004000 [0x000005dc] address [size] of Resource Directory:
// 0x00000000 [0x00000000] address [size] of Exception Directory:
// 0x00000000 [0x00000000] address [size] of Security Directory:
// 0x00006000 [0x0000000c] address [size] of Base Relocation Table:
// 0x000026b8 [0x0000001c] address [size] of Debug Directory:
// 0x00000000 [0x00000000] address [size] of Architecture Specific:
// 0x00000000 [0x00000000] address [size] of Global Pointer:
// 0x00000000 [0x00000000] address [size] of TLS Directory:
// 0x00000000 [0x00000000] address [size] of Load Config Directory:
// 0x00000000 [0x00000000] address [size] of Bound Import Directory:
// 0x00002000 [0x00000008] address [size] of Import Address Table:
// 0x00000000 [0x00000000] address [size] of Delay Load IAT:
// 0x00002008 [0x00000048] address [size] of CLR Header:
// Image sections:
// .text
// 0x000007a0 Virtual Size
// 0x00002000 Virtual Address
// 0x00000800 Size of Raw Data
// 0x00000200 Pointer to Raw Data
// 0x00000000 Pointer to Relocations
// 0x00000000 Pointer to Linenumbers
// 0x0000 Number of Relocations
// 0x0000 Number of Linenumbers
// 0x60000020 Characteristics
// CNT_CODE
// MEM_EXECUTE
// MEM_READ
// .rsrc
// 0x000005dc Virtual Size
// 0x00004000 Virtual Address
// 0x00000600 Size of Raw Data
// 0x00000a00 Pointer to Raw Data
// 0x00000000 Pointer to Relocations
// 0x00000000 Pointer to Linenumbers
// 0x0000 Number of Relocations
// 0x0000 Number of Linenumbers
// 0x40000040 Characteristics
// CNT_INITIALIZED_DATA
// MEM_READ
// .reloc
// 0x0000000c Virtual Size
// 0x00006000 Virtual Address
// 0x00000200 Size of Raw Data
// 0x00001000 Pointer to Raw Data
// 0x00000000 Pointer to Relocations
// 0x00000000 Pointer to Linenumbers
// 0x0000 Number of Relocations
// 0x0000 Number of Linenumbers
// 0x42000040 Characteristics
// CNT_INITIALIZED_DATA
// MEM_DISCARDABLE
// MEM_READ
// Base Relocation Table
// 0x00002000 Page RVA
// 0x0000000c Block Size
// 0x00000002 Number of Entries
// Entry 1: Type 0x3 Offset 0x0000079c
// Entry 2: Type 0x0 Offset 0x00000000
// Import Address Table
// DLL : mscoree.dll
// 0x00002000 Import Address Table
// 0x00002787 Import Name Table
// 0 Time Date Stamp
// 0 Index of First Forwarder Reference
//
// 0x0000 _CorExeMain
// Delay Load Import Address Table
// 没有数据。
// Entry point code:
//FF 25 00 20 40 00
// ----- CLR Header:
// Header size: 0x00000048
// Major runtime version: 0x0002
// Minor runtime version: 0x0005
// 0x00002090 [0x00000628] address [size] of Metadata Directory:
// Flags: 0x00020003
// Entry point token: 0x06000003
// 0x00000000 [0x00000000] address [size] of Resources Directory:
// 0x00000000 [0x00000000] address [size] of Strong Name Signature:
// 0x00000000 [0x00000000] address [size] of CodeManager Table:
// 0x00000000 [0x00000000] address [size] of VTableFixups Directory:
// 0x00000000 [0x00000000] address [size] of Export Address Table:
// 0x00000000 [0x00000000] address [size] of Precompile Header:
// Metadata Header
// Storage Signature:
// 0x424a5342 Signature
// 0x0001 Major Version
// 0x0001 Minor Version
// 0x00000000 Extra Data Offset
// 0x0000000c Version String Length
// 'v4.0.30319' Version String
// Storage Header:
// 0x00 Flags
// 0x0005 Number of Streams
// Stream 1:
// 0x0000006c Offset
// 0x000001f4 Size
// '#~' Name
// Stream 2:
// 0x00000260 Offset
// 0x00000280 Size
// '#Strings' Name
// Stream 3:
// 0x000004e0 Offset
// 0x00000010 Size
// '#US' Name
// Stream 4:
// 0x000004f0 Offset
// 0x00000010 Size
// '#GUID' Name
// Stream 5:
// 0x00000500 Offset
// 0x00000128 Size
// '#Blob' Name
// Metadata Stream Header:
// 0x00000000 Reserved
// 0x02 Major
// 0x00 Minor
// 0x00 Heaps
// 0x01 Rid
// 0x0000000900021557 MaskValid
// 0x000016003301fa00 Sorted
// Code Manager Table:
// default
// Export Address Table Jumps:
// 没有数据。
// File size : 4608
// PE header size : 512 (496 used) (11.11%)
// PE additional info : 1699 (36.87%)
// Num.of PE sections : 3
// CLR header size : 72 ( 1.56%)
// CLR meta-data size : 1576 (34.20%)
// CLR additional info : 0 ( 0.00%)
// CLR method headers : 14 ( 0.30%)
// Managed code : 47 ( 1.02%)
// Data : 2048 (44.44%)
// Unaccounted : -1360 (-29.51%)
// Num.of PE sections : 3
// .text - 2048
// .rsrc - 1536
// .reloc - 512
// CLR meta-data size : 1576
// Module - 1 (10 bytes)
// TypeDef - 2 (28 bytes) 0 interfaces, 0 explicit layout
// TypeRef - 17 (102 bytes)
// MethodDef - 3 (42 bytes) 0 abstract, 0 native, 3 bodies
// FieldDef - 1 (6 bytes) 0 constant
// MemberRef - 17 (102 bytes)
// ParamDef - 2 (12 bytes)
// CustomAttribute- 14 (84 bytes)
// StandAloneSig - 1 (2 bytes)
// Assembly - 1 (22 bytes)
// AssemblyRef - 1 (20 bytes)
// Strings - 640 bytes
// Blobs - 296 bytes
// UserStrings - 16 bytes
// Guids - 16 bytes
// Uncategorized - 178 bytes
// CLR method headers : 14
// Num.of method bodies - 3
// Num.of fat headers - 1
// Num.of tiny headers - 2
// Managed code : 47
// Ave method size - 15
// Classes defined in this module:
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class Program (auto) (ansi)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ================================= 元信息 ================================================
// ===========================================================
// ScopeName : SimpleAssembly.exe
// MVID : {804EFF4C-031C-48A0-A99D-137E989366EC}
// ===========================================================
// Global functions
// -------------------------------------------------------
//
// Global fields
// -------------------------------------------------------
//
// Global MemberRefs
// -------------------------------------------------------
//
// TypeDef #1 (02000002)
// -------------------------------------------------------
// TypDefName: SimpleAssembly.Program (02000002)
// Flags : [NotPublic] [AutoLayout] [Class] [Serializable] [AnsiClass] [BeforeFieldInit] (00102000)
// Extends : 01000010 [TypeRef] System.Object
// Field #1 (04000001)
// -------------------------------------------------------
// Field Name: _MyString (04000001)
// Flags : [Private] (00000001)
// CallCnvntn: [FIELD]
// Field type: String
//
// Method #1 (06000001)
// -------------------------------------------------------
// MethodName: .ctor (06000001)
// Flags : [Public] [HideBySig] [ReuseSlot] [SpecialName] [RTSpecialName] [.ctor] (00001886)
// RVA : 0x00002050
// ImplFlags : [IL] [Managed] (00000000)
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
// 1 Parameters
// (1) ParamToken : (08000001) Name : mystring flags: [none] (00000000)
//
// Method #2 (06000002)
// -------------------------------------------------------
// MethodName: ToString (06000002)
// Flags : [Public] [Virtual] [HideBySig] [ReuseSlot] (000000c6)
// RVA : 0x00002064
// ImplFlags : [IL] [Managed] (00000000)
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: String
// No arguments.
//
// Method #3 (06000003) [ENTRYPOINT]
// -------------------------------------------------------
// MethodName: Main (06000003)
// Flags : [Private] [Static] [HideBySig] [ReuseSlot] (00000091)
// RVA : 0x0000207c
// ImplFlags : [IL] [Managed] (00000000)
// CallCnvntn: [DEFAULT]
// ReturnType: Void
// 1 Arguments
// Argument #1: SZArray String
// 1 Parameters
// (1) ParamToken : (08000002) Name : args flags: [none] (00000000)
//
//
// TypeRef #1 (01000001)
// -------------------------------------------------------
// Token: 0x01000001
// ResolutionScope: 0x23000001
// TypeRefName: System.Runtime.CompilerServices.CompilationRelaxationsAttribute
// MemberRef #1 (0a000001)
// -------------------------------------------------------
// Member: (0a000001) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: I4
//
// TypeRef #2 (01000002)
// -------------------------------------------------------
// Token: 0x01000002
// ResolutionScope: 0x23000001
// TypeRefName: System.Runtime.CompilerServices.RuntimeCompatibilityAttribute
// MemberRef #1 (0a000002)
// -------------------------------------------------------
// Member: (0a000002) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// No arguments.
//
// TypeRef #3 (01000003)
// -------------------------------------------------------
// Token: 0x01000003
// ResolutionScope: 0x23000001
// TypeRefName: System.Diagnostics.DebuggableAttribute
// MemberRef #1 (0a000003)
// -------------------------------------------------------
// Member: (0a000003) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: ValueClass DebuggingModes
//
// TypeRef #4 (01000004)
// -------------------------------------------------------
// Token: 0x01000004
// ResolutionScope: 0x01000003
// TypeRefName: DebuggingModes
//
// TypeRef #5 (01000005)
// -------------------------------------------------------
// Token: 0x01000005
// ResolutionScope: 0x23000001
// TypeRefName: System.Reflection.AssemblyTitleAttribute
// MemberRef #1 (0a000004)
// -------------------------------------------------------
// Member: (0a000004) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #6 (01000006)
// -------------------------------------------------------
// Token: 0x01000006
// ResolutionScope: 0x23000001
// TypeRefName: System.Reflection.AssemblyDescriptionAttribute
// MemberRef #1 (0a000005)
// -------------------------------------------------------
// Member: (0a000005) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #7 (01000007)
// -------------------------------------------------------
// Token: 0x01000007
// ResolutionScope: 0x23000001
// TypeRefName: System.Reflection.AssemblyConfigurationAttribute
// MemberRef #1 (0a000006)
// -------------------------------------------------------
// Member: (0a000006) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #8 (01000008)
// -------------------------------------------------------
// Token: 0x01000008
// ResolutionScope: 0x23000001
// TypeRefName: System.Reflection.AssemblyCompanyAttribute
// MemberRef #1 (0a000007)
// -------------------------------------------------------
// Member: (0a000007) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #9 (01000009)
// -------------------------------------------------------
// Token: 0x01000009
// ResolutionScope: 0x23000001
// TypeRefName: System.Reflection.AssemblyProductAttribute
// MemberRef #1 (0a000008)
// -------------------------------------------------------
// Member: (0a000008) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #10 (0100000a)
// -------------------------------------------------------
// Token: 0x0100000a
// ResolutionScope: 0x23000001
// TypeRefName: System.Reflection.AssemblyCopyrightAttribute
// MemberRef #1 (0a000009)
// -------------------------------------------------------
// Member: (0a000009) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #11 (0100000b)
// -------------------------------------------------------
// Token: 0x0100000b
// ResolutionScope: 0x23000001
// TypeRefName: System.Reflection.AssemblyTrademarkAttribute
// MemberRef #1 (0a00000a)
// -------------------------------------------------------
// Member: (0a00000a) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #12 (0100000c)
// -------------------------------------------------------
// Token: 0x0100000c
// ResolutionScope: 0x23000001
// TypeRefName: System.Runtime.InteropServices.ComVisibleAttribute
// MemberRef #1 (0a00000b)
// -------------------------------------------------------
// Member: (0a00000b) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: Boolean
//
// TypeRef #13 (0100000d)
// -------------------------------------------------------
// Token: 0x0100000d
// ResolutionScope: 0x23000001
// TypeRefName: System.Runtime.InteropServices.GuidAttribute
// MemberRef #1 (0a00000c)
// -------------------------------------------------------
// Member: (0a00000c) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #14 (0100000e)
// -------------------------------------------------------
// Token: 0x0100000e
// ResolutionScope: 0x23000001
// TypeRefName: System.Reflection.AssemblyFileVersionAttribute
// MemberRef #1 (0a00000d)
// -------------------------------------------------------
// Member: (0a00000d) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #15 (0100000f)
// -------------------------------------------------------
// Token: 0x0100000f
// ResolutionScope: 0x23000001
// TypeRefName: System.Runtime.Versioning.TargetFrameworkAttribute
// MemberRef #1 (0a00000e)
// -------------------------------------------------------
// Member: (0a00000e) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// 1 Arguments
// Argument #1: String
//
// TypeRef #16 (01000010)
// -------------------------------------------------------
// Token: 0x01000010
// ResolutionScope: 0x23000001
// TypeRefName: System.Object
// MemberRef #1 (0a00000f)
// -------------------------------------------------------
// Member: (0a00000f) .ctor:
// CallCnvntn: [DEFAULT]
// hasThis
// ReturnType: Void
// No arguments.
//
// TypeRef #17 (01000011)
// -------------------------------------------------------
// Token: 0x01000011
// ResolutionScope: 0x23000001
// TypeRefName: System.Console
// MemberRef #1 (0a000010)
// -------------------------------------------------------
// Member: (0a000010) WriteLine:
// CallCnvntn: [DEFAULT]
// ReturnType: Void
// 1 Arguments
// Argument #1: String
// MemberRef #2 (0a000011)
// -------------------------------------------------------
// Member: (0a000011) Read:
// CallCnvntn: [DEFAULT]
// ReturnType: I4
// No arguments.
//
// Signature #1 (0x11000001)
// -------------------------------------------------------
// CallCnvntn: [LOCALSIG]
// 1 Arguments
// Argument #1: String
//
// Assembly
// -------------------------------------------------------
// Token: 0x20000001
// Name : SimpleAssembly
// Public Key :
// Hash Algorithm : 0x00008004
// Version: 1.0.0.0
// Major Version: 0x00000001
// Minor Version: 0x00000000
// Build Number: 0x00000000
// Revision Number: 0x00000000
// Locale: <null>
// Flags : [none] (00000000)
// CustomAttribute #1 (0c000001)
// -------------------------------------------------------
// CustomAttribute Type: 0a000001
// CustomAttributeName: System.Runtime.CompilerServices.CompilationRelaxationsAttribute :: instance void .ctor(int32)
// Length: 8
// Value : 01 00 08 00 00 00 00 00 > <
// ctor args: (8)
//
// CustomAttribute #2 (0c000002)
// -------------------------------------------------------
// CustomAttribute Type: 0a000002
// CustomAttributeName: System.Runtime.CompilerServices.RuntimeCompatibilityAttribute :: instance void .ctor()
// Length: 30
// Value : 01 00 01 00 54 02 16 57 72 61 70 4e 6f 6e 45 78 > T WrapNonEx<
// : 63 65 70 74 69 6f 6e 54 68 72 6f 77 73 01 >ceptionThrows <
// ctor args: ()
//
// CustomAttribute #3 (0c000003)
// -------------------------------------------------------
// CustomAttribute Type: 0a000003
// CustomAttributeName: System.Diagnostics.DebuggableAttribute :: instance void .ctor(value class DebuggingModes)
// Length: 8
// Value : 01 00 07 01 00 00 00 00 > <
// ctor args: ( <can not decode> )
//
// CustomAttribute #4 (0c000004)
// -------------------------------------------------------
// CustomAttribute Type: 0a000004
// CustomAttributeName: System.Reflection.AssemblyTitleAttribute :: instance void .ctor(class System.String)
// Length: 19
// Value : 01 00 0e 53 69 6d 70 6c 65 41 73 73 65 6d 62 6c > SimpleAssembl<
// : 79 00 00 >y <
// ctor args: ("SimpleAssembly")
//
// CustomAttribute #5 (0c000005)
// -------------------------------------------------------
// CustomAttribute Type: 0a000005
// CustomAttributeName: System.Reflection.AssemblyDescriptionAttribute :: instance void .ctor(class System.String)
// Length: 5
// Value : 01 00 00 00 00 > <
// ctor args: ("")
//
// CustomAttribute #6 (0c000006)
// -------------------------------------------------------
// CustomAttribute Type: 0a000006
// CustomAttributeName: System.Reflection.AssemblyConfigurationAttribute :: instance void .ctor(class System.String)
// Length: 5
// Value : 01 00 00 00 00 > <
// ctor args: ("")
//
// CustomAttribute #7 (0c000007)
// -------------------------------------------------------
// CustomAttribute Type: 0a000007
// CustomAttributeName: System.Reflection.AssemblyCompanyAttribute :: instance void .ctor(class System.String)
// Length: 5
// Value : 01 00 00 00 00 > <
// ctor args: ("")
//
// CustomAttribute #8 (0c000008)
// -------------------------------------------------------
// CustomAttribute Type: 0a000008
// CustomAttributeName: System.Reflection.AssemblyProductAttribute :: instance void .ctor(class System.String)
// Length: 19
// Value : 01 00 0e 53 69 6d 70 6c 65 41 73 73 65 6d 62 6c > SimpleAssembl<
// : 79 00 00 >y <
// ctor args: ("SimpleAssembly")
//
// CustomAttribute #9 (0c000009)
// -------------------------------------------------------
// CustomAttribute Type: 0a000009
// CustomAttributeName: System.Reflection.AssemblyCopyrightAttribute :: instance void .ctor(class System.String)
// Length: 23
// Value : 01 00 12 43 6f 70 79 72 69 67 68 74 20 c2 a9 20 > Copyright <
// : 20 32 30 31 36 00 00 > 2016 <
// ctor args: ("Copyright ? 2016")
//
// CustomAttribute #10 (0c00000a)
// -------------------------------------------------------
// CustomAttribute Type: 0a00000a
// CustomAttributeName: System.Reflection.AssemblyTrademarkAttribute :: instance void .ctor(class System.String)
// Length: 5
// Value : 01 00 00 00 00 > <
// ctor args: ("")
//
// CustomAttribute #11 (0c00000b)
// -------------------------------------------------------
// CustomAttribute Type: 0a00000b
// CustomAttributeName: System.Runtime.InteropServices.ComVisibleAttribute :: instance void .ctor(bool)
// Length: 5
// Value : 01 00 00 00 00 > <
// ctor args: ( <can not decode> )
//
// CustomAttribute #12 (0c00000c)
// -------------------------------------------------------
// CustomAttribute Type: 0a00000c
// CustomAttributeName: System.Runtime.InteropServices.GuidAttribute :: instance void .ctor(class System.String)
// Length: 41
// Value : 01 00 24 31 39 62 34 30 30 33 64 2d 36 30 66 36 > $19b4003d-60f6<
// : 2d 34 66 64 64 2d 61 33 33 38 2d 31 37 35 65 30 >-4fdd-a338-175e0<
// : 63 63 34 61 66 33 65 00 00 >cc4af3e <
// ctor args: ("19b4003d-60f6-4fdd-a338-175e0cc4af3e")
//
// CustomAttribute #13 (0c00000d)
// -------------------------------------------------------
// CustomAttribute Type: 0a00000d
// CustomAttributeName: System.Reflection.AssemblyFileVersionAttribute :: instance void .ctor(class System.String)
// Length: 12
// Value : 01 00 07 31 2e 30 2e 30 2e 30 00 00 > 1.0.0.0 <
// ctor args: ("1.0.0.0")
//
// CustomAttribute #14 (0c00000e)
// -------------------------------------------------------
// CustomAttribute Type: 0a00000e
// CustomAttributeName: System.Runtime.Versioning.TargetFrameworkAttribute :: instance void .ctor(class System.String)
// Length: 77
// Value : 01 00 1c 2e 4e 45 54 46 72 61 6d 65 77 6f 72 6b > .NETFramework<
// : 2c 56 65 72 73 69 6f 6e 3d 76 34 2e 35 2e 32 01 >,Version=v4.5.2 <
// : 00 54 0e 14 46 72 61 6d 65 77 6f 72 6b 44 69 73 > T FrameworkDis<
// : 70 6c 61 79 4e 61 6d 65 14 2e 4e 45 54 20 46 72 >playName .NET Fr<
// : 61 6d 65 77 6f 72 6b 20 34 2e 35 2e 32 >amework 4.5.2 <
// ctor args: (".NETFramework,Version=v4.5.2")
//
//
// AssemblyRef #1 (23000001)
// -------------------------------------------------------
// Token: 0x23000001
// Public Key or Token: b7 7a 5c 56 19 34 e0 89
// Name: mscorlib
// Version: 4.0.0.0
// Major Version: 0x00000004
// Minor Version: 0x00000000
// Build Number: 0x00000000
// Revision Number: 0x00000000
// Locale: <null>
// HashValue Blob:
// Flags: [none] (00000000)
//
//
// User Strings
// -------------------------------------------------------
// 70000001 : ( 5) L""
//
//
// Coff symbol name overhead: 0
// ===========================================================
// ===========================================================
// ===========================================================
// ================================= 元信息结束 ================================================
// Metadata version: v4.0.30319
.assembly extern /23000001/ mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly /20000001/ SimpleAssembly
{
.custom /0C000001:0A000001/ instance void [mscorlib/23000001/]System.Runtime.CompilerServices.CompilationRelaxationsAttribute/01000001/::.ctor(int32) / 0A000001 / = ( 01 00 08 00 00 00 00 00 )
.custom /0C000002:0A000002/ instance void [mscorlib/23000001/]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute/01000002/::.ctor() / 0A000002 / = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx
63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
// --- 下列自定义特性会自动添加,不要取消注释 -------
// .custom /0C000003:0A000003/ instance void [mscorlib/23000001/]System.Diagnostics.DebuggableAttribute/01000003/::.ctor(valuetype [mscorlib/23000001/]System.Diagnostics.DebuggableAttribute/01000003//DebuggingModes/01000004/) / 0A000003 / = ( 01 00 07 01 00 00 00 00 )
.custom /0C000004:0A000004/ instance void [mscorlib/23000001/]System.Reflection.AssemblyTitleAttribute/01000005/::.ctor(string) / 0A000004 / = ( 01 00 0E 53 69 6D 70 6C 65 41 73 73 65 6D 62 6C // ...SimpleAssembl
79 00 00 ) // y..
.custom /0C000005:0A000005/ instance void [mscorlib/23000001/]System.Reflection.AssemblyDescriptionAttribute/01000006/::.ctor(string) / 0A000005 / = ( 01 00 00 00 00 )
.custom /0C000006:0A000006/ instance void [mscorlib/23000001/]System.Reflection.AssemblyConfigurationAttribute/01000007/::.ctor(string) / 0A000006 / = ( 01 00 00 00 00 )
.custom /0C000007:0A000007/ instance void [mscorlib/23000001/]System.Reflection.AssemblyCompanyAttribute/01000008/::.ctor(string) / 0A000007 / = ( 01 00 00 00 00 )
.custom /0C000008:0A000008/ instance void [mscorlib/23000001/]System.Reflection.AssemblyProductAttribute/01000009/::.ctor(string) / 0A000008 / = ( 01 00 0E 53 69 6D 70 6C 65 41 73 73 65 6D 62 6C // ...SimpleAssembl
79 00 00 ) // y..
.custom /0C000009:0A000009/ instance void [mscorlib/23000001/]System.Reflection.AssemblyCopyrightAttribute/0100000A/::.ctor(string) / 0A000009 / = ( 01 00 12 43 6F 70 79 72 69 67 68 74 20 C2 A9 20 // ...Copyright ..
20 32 30 31 36 00 00 ) // 2016..
.custom /0C00000A:0A00000A/ instance void [mscorlib/23000001/]System.Reflection.AssemblyTrademarkAttribute/0100000B/::.ctor(string) / 0A00000A / = ( 01 00 00 00 00 )
.custom /0C00000B:0A00000B/ instance void [mscorlib/23000001/]System.Runtime.InteropServices.ComVisibleAttribute/0100000C/::.ctor(bool) / 0A00000B / = ( 01 00 00 00 00 )
.custom /0C00000C:0A00000C/ instance void [mscorlib/23000001/]System.Runtime.InteropServices.GuidAttribute/0100000D/::.ctor(string) / 0A00000C / = ( 01 00 24 31 39 62 34 30 30 33 64 2D 36 30 66 36 // ..$19b4003d-60f6
2D 34 66 64 64 2D 61 33 33 38 2D 31 37 35 65 30 // -4fdd-a338-175e0
63 63 34 61 66 33 65 00 00 ) // cc4af3e..
.custom /0C00000D:0A00000D/ instance void [mscorlib/23000001/]System.Reflection.AssemblyFileVersionAttribute/0100000E/::.ctor(string) / 0A00000D / = ( 01 00 07 31 2E 30 2E 30 2E 30 00 00 ) // ...1.0.0.0..
.custom /0C00000E:0A00000E/ instance void [mscorlib/23000001/]System.Runtime.Versioning.TargetFrameworkAttribute/0100000F/::.ctor(string) / 0A00000E / = ( 01 00 1C 2E 4E 45 54 46 72 61 6D 65 77 6F 72 6B // ....NETFramework
2C 56 65 72 73 69 6F 6E 3D 76 34 2E 35 2E 32 01 // ,Version=v4.5.2.
00 54 0E 14 46 72 61 6D 65 77 6F 72 6B 44 69 73 // .T..FrameworkDis
70 6C 61 79 4E 61 6D 65 14 2E 4E 45 54 20 46 72 // playName..NET Fr
61 6D 65 77 6F 72 6B 20 34 2E 35 2E 32 ) // amework 4.5.2
.hash algorithm 0x00008004
.ver 1:0:0:0
}
.module SimpleAssembly.exe
// MVID: {804EFF4C-031C-48A0-A99D-137E989366EC}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00020003 // ILONLY 32BITPREFERRED
// Image base: 0x00D90000
// =============== CLASS MEMBERS DECLARATION ===================
.class /02000002/ private auto ansi serializable beforefieldinit SimpleAssembly.Program
extends [mscorlib/23000001/]System.Object/01000010/
{
.field /04000001/ private string _MyString
.method /06000001/ public hidebysig specialname rtspecialname
instance void .ctor(string mystring) cil managed
// SIG: 20 01 01 0E
{
// 方法在 RVA 0x2050 处开始
// 代码大小 16 (0x10)
.maxstack 8
IL_0000: / 02 | / ldarg.0
IL_0001: / 28 | (0A)00000F / call instance void [mscorlib/23000001/]System.Object/01000010/::.ctor() / 0A00000F /
IL_0006: / 00 | / nop
IL_0007: / 00 | / nop
IL_0008: / 02 | / ldarg.0
IL_0009: / 03 | / ldarg.1
IL_000a: / 7D | (04)000001 / stfld string SimpleAssembly.Program/02000002/::_MyString / 04000001 /
IL_000f: / 2A | / ret
} // end of method Program::.ctor
.method /06000002/ public hidebysig virtual
instance string ToString() cil managed
// SIG: 20 00 0E
{
// 方法在 RVA 0x2064 处开始
// 代码大小 12 (0xc)
.maxstack 1
.locals /11000001/ init (string V_0)
IL_0000: / 00 | / nop
IL_0001: / 02 | / ldarg.0
IL_0002: / 7B | (04)000001 / ldfld string SimpleAssembly.Program/02000002/::_MyString / 04000001 /
IL_0007: / 0A | / stloc.0
IL_0008: / 2B | 00 / br.s IL_000a
IL_000a: / 06 | / ldloc.0
IL_000b: / 2A | / ret
} // end of method Program::ToString
.method /06000003/ private hidebysig static
void Main(string[] args) cil managed
// SIG: 00 01 01 1D 0E
{
.entrypoint
// 方法在 RVA 0x207c 处开始
// 代码大小 19 (0x13)
.maxstack 8
IL_0000: / 00 | / nop
IL_0001: / 72 | (70)000001 / ldstr bytearray (80 7B 55 53 0B 7A 8F 5E C6 96 ) // .{US.z.^.. / 70000001 /
IL_0006: / 28 | (0A)000010 / call void [mscorlib/23000001/]System.Console/01000011/::WriteLine(string) / 0A000010 /
IL_000b: / 00 | / nop
IL_000c: / 28 | (0A)000011 / call int32 [mscorlib/23000001/]System.Console/01000011/::Read() / 0A000011 /
IL_0011: / 26 | / pop
IL_0012: / 2A | / ret
} // end of method Program::Main
} // end of class SimpleAssembly.Program
// =============================================================
// [i][b][b] 反汇编完成 [/b][/b][/i]****************
// 警告: 创建了 Win32 资源文件 SimpleAssembly.ILDasm.res