1#![allow(
2 non_snake_case,
3 non_upper_case_globals,
4 non_camel_case_types,
5 dead_code,
6 clippy::all
7)]
8
9pub type CorElementType = u8;
10pub const ELEMENT_TYPE_ARRAY: CorElementType = 20u8;
11pub const ELEMENT_TYPE_BOOLEAN: CorElementType = 2u8;
12pub const ELEMENT_TYPE_BYREF: CorElementType = 16u8;
13pub const ELEMENT_TYPE_CHAR: CorElementType = 3u8;
14pub const ELEMENT_TYPE_CLASS: CorElementType = 18u8;
15pub const ELEMENT_TYPE_CMOD_OPT: CorElementType = 32u8;
16pub const ELEMENT_TYPE_CMOD_REQD: CorElementType = 31u8;
17pub const ELEMENT_TYPE_GENERICINST: CorElementType = 21u8;
18pub const ELEMENT_TYPE_I: CorElementType = 24u8;
19pub const ELEMENT_TYPE_I1: CorElementType = 4u8;
20pub const ELEMENT_TYPE_I2: CorElementType = 6u8;
21pub const ELEMENT_TYPE_I4: CorElementType = 8u8;
22pub const ELEMENT_TYPE_I8: CorElementType = 10u8;
23pub const ELEMENT_TYPE_OBJECT: CorElementType = 28u8;
24pub const ELEMENT_TYPE_PTR: CorElementType = 15u8;
25pub const ELEMENT_TYPE_R4: CorElementType = 12u8;
26pub const ELEMENT_TYPE_R8: CorElementType = 13u8;
27pub const ELEMENT_TYPE_STRING: CorElementType = 14u8;
28pub const ELEMENT_TYPE_SZARRAY: CorElementType = 29u8;
29pub const ELEMENT_TYPE_U: CorElementType = 25u8;
30pub const ELEMENT_TYPE_U1: CorElementType = 5u8;
31pub const ELEMENT_TYPE_U2: CorElementType = 7u8;
32pub const ELEMENT_TYPE_U4: CorElementType = 9u8;
33pub const ELEMENT_TYPE_U8: CorElementType = 11u8;
34pub const ELEMENT_TYPE_VALUETYPE: CorElementType = 17u8;
35pub const ELEMENT_TYPE_VAR: CorElementType = 19u8;
36pub const ELEMENT_TYPE_VOID: CorElementType = 1u8;
37#[repr(C)]
38#[derive(Clone, Copy)]
39pub struct IMAGE_COR20_HEADER {
40 pub cb: u32,
41 pub MajorRuntimeVersion: u16,
42 pub MinorRuntimeVersion: u16,
43 pub MetaData: IMAGE_DATA_DIRECTORY,
44 pub Flags: u32,
45 pub Anonymous: IMAGE_COR20_HEADER_0,
46 pub Resources: IMAGE_DATA_DIRECTORY,
47 pub StrongNameSignature: IMAGE_DATA_DIRECTORY,
48 pub CodeManagerTable: IMAGE_DATA_DIRECTORY,
49 pub VTableFixups: IMAGE_DATA_DIRECTORY,
50 pub ExportAddressTableJumps: IMAGE_DATA_DIRECTORY,
51 pub ManagedNativeHeader: IMAGE_DATA_DIRECTORY,
52}
53#[repr(C)]
54#[derive(Clone, Copy)]
55pub union IMAGE_COR20_HEADER_0 {
56 pub EntryPointToken: u32,
57 pub EntryPointRVA: u32,
58}
59#[repr(C)]
60#[derive(Clone, Copy)]
61pub struct IMAGE_DATA_DIRECTORY {
62 pub VirtualAddress: u32,
63 pub Size: u32,
64}
65pub type IMAGE_DIRECTORY_ENTRY = u16;
66pub const IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR: IMAGE_DIRECTORY_ENTRY = 14u16;
67pub const IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE: IMAGE_DLL_CHARACTERISTICS = 64u16;
68pub const IMAGE_DLLCHARACTERISTICS_NO_SEH: IMAGE_DLL_CHARACTERISTICS = 1024u16;
69pub const IMAGE_DLLCHARACTERISTICS_NX_COMPAT: IMAGE_DLL_CHARACTERISTICS = 256u16;
70pub type IMAGE_DLL_CHARACTERISTICS = u16;
71#[repr(C, packed(2))]
72#[derive(Clone, Copy)]
73pub struct IMAGE_DOS_HEADER {
74 pub e_magic: u16,
75 pub e_cblp: u16,
76 pub e_cp: u16,
77 pub e_crlc: u16,
78 pub e_cparhdr: u16,
79 pub e_minalloc: u16,
80 pub e_maxalloc: u16,
81 pub e_ss: u16,
82 pub e_sp: u16,
83 pub e_csum: u16,
84 pub e_ip: u16,
85 pub e_cs: u16,
86 pub e_lfarlc: u16,
87 pub e_ovno: u16,
88 pub e_res: [u16; 4],
89 pub e_oemid: u16,
90 pub e_oeminfo: u16,
91 pub e_res2: [u16; 10],
92 pub e_lfanew: i32,
93}
94pub const IMAGE_DOS_SIGNATURE: u16 = 23117u16;
95pub const IMAGE_FILE_32BIT_MACHINE: IMAGE_FILE_CHARACTERISTICS = 256u16;
96pub type IMAGE_FILE_CHARACTERISTICS = u16;
97pub const IMAGE_FILE_DLL: IMAGE_FILE_CHARACTERISTICS = 8192u16;
98pub const IMAGE_FILE_EXECUTABLE_IMAGE: IMAGE_FILE_CHARACTERISTICS = 2u16;
99#[repr(C)]
100#[derive(Clone, Copy)]
101pub struct IMAGE_FILE_HEADER {
102 pub Machine: IMAGE_FILE_MACHINE,
103 pub NumberOfSections: u16,
104 pub TimeDateStamp: u32,
105 pub PointerToSymbolTable: u32,
106 pub NumberOfSymbols: u32,
107 pub SizeOfOptionalHeader: u16,
108 pub Characteristics: IMAGE_FILE_CHARACTERISTICS,
109}
110pub type IMAGE_FILE_MACHINE = u16;
111pub const IMAGE_FILE_MACHINE_I386: IMAGE_FILE_MACHINE = 332u16;
112pub const IMAGE_NT_OPTIONAL_HDR32_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = 267u16;
113pub const IMAGE_NT_OPTIONAL_HDR64_MAGIC: IMAGE_OPTIONAL_HEADER_MAGIC = 523u16;
114pub const IMAGE_NT_SIGNATURE: u32 = 17744u32;
115#[repr(C)]
116#[derive(Clone, Copy)]
117pub struct IMAGE_OPTIONAL_HEADER32 {
118 pub Magic: IMAGE_OPTIONAL_HEADER_MAGIC,
119 pub MajorLinkerVersion: u8,
120 pub MinorLinkerVersion: u8,
121 pub SizeOfCode: u32,
122 pub SizeOfInitializedData: u32,
123 pub SizeOfUninitializedData: u32,
124 pub AddressOfEntryPoint: u32,
125 pub BaseOfCode: u32,
126 pub BaseOfData: u32,
127 pub ImageBase: u32,
128 pub SectionAlignment: u32,
129 pub FileAlignment: u32,
130 pub MajorOperatingSystemVersion: u16,
131 pub MinorOperatingSystemVersion: u16,
132 pub MajorImageVersion: u16,
133 pub MinorImageVersion: u16,
134 pub MajorSubsystemVersion: u16,
135 pub MinorSubsystemVersion: u16,
136 pub Win32VersionValue: u32,
137 pub SizeOfImage: u32,
138 pub SizeOfHeaders: u32,
139 pub CheckSum: u32,
140 pub Subsystem: IMAGE_SUBSYSTEM,
141 pub DllCharacteristics: IMAGE_DLL_CHARACTERISTICS,
142 pub SizeOfStackReserve: u32,
143 pub SizeOfStackCommit: u32,
144 pub SizeOfHeapReserve: u32,
145 pub SizeOfHeapCommit: u32,
146 pub LoaderFlags: u32,
147 pub NumberOfRvaAndSizes: u32,
148 pub DataDirectory: [IMAGE_DATA_DIRECTORY; 16],
149}
150#[repr(C, packed(4))]
151#[derive(Clone, Copy)]
152pub struct IMAGE_OPTIONAL_HEADER64 {
153 pub Magic: IMAGE_OPTIONAL_HEADER_MAGIC,
154 pub MajorLinkerVersion: u8,
155 pub MinorLinkerVersion: u8,
156 pub SizeOfCode: u32,
157 pub SizeOfInitializedData: u32,
158 pub SizeOfUninitializedData: u32,
159 pub AddressOfEntryPoint: u32,
160 pub BaseOfCode: u32,
161 pub ImageBase: u64,
162 pub SectionAlignment: u32,
163 pub FileAlignment: u32,
164 pub MajorOperatingSystemVersion: u16,
165 pub MinorOperatingSystemVersion: u16,
166 pub MajorImageVersion: u16,
167 pub MinorImageVersion: u16,
168 pub MajorSubsystemVersion: u16,
169 pub MinorSubsystemVersion: u16,
170 pub Win32VersionValue: u32,
171 pub SizeOfImage: u32,
172 pub SizeOfHeaders: u32,
173 pub CheckSum: u32,
174 pub Subsystem: IMAGE_SUBSYSTEM,
175 pub DllCharacteristics: IMAGE_DLL_CHARACTERISTICS,
176 pub SizeOfStackReserve: u64,
177 pub SizeOfStackCommit: u64,
178 pub SizeOfHeapReserve: u64,
179 pub SizeOfHeapCommit: u64,
180 pub LoaderFlags: u32,
181 pub NumberOfRvaAndSizes: u32,
182 pub DataDirectory: [IMAGE_DATA_DIRECTORY; 16],
183}
184pub type IMAGE_OPTIONAL_HEADER_MAGIC = u16;
185pub type IMAGE_SECTION_CHARACTERISTICS = u32;
186#[repr(C)]
187#[derive(Clone, Copy)]
188pub struct IMAGE_SECTION_HEADER {
189 pub Name: [u8; 8],
190 pub Misc: IMAGE_SECTION_HEADER_0,
191 pub VirtualAddress: u32,
192 pub SizeOfRawData: u32,
193 pub PointerToRawData: u32,
194 pub PointerToRelocations: u32,
195 pub PointerToLinenumbers: u32,
196 pub NumberOfRelocations: u16,
197 pub NumberOfLinenumbers: u16,
198 pub Characteristics: IMAGE_SECTION_CHARACTERISTICS,
199}
200#[repr(C)]
201#[derive(Clone, Copy)]
202pub union IMAGE_SECTION_HEADER_0 {
203 pub PhysicalAddress: u32,
204 pub VirtualSize: u32,
205}
206pub type IMAGE_SUBSYSTEM = u16;
207pub const IMAGE_SUBSYSTEM_WINDOWS_CUI: IMAGE_SUBSYSTEM = 3u16;
208