LIEF: Library to Instrument Executable Formats Version 0.15.0
Loading...
Searching...
No Matches
PE/enums.hpp
1/* Copyright 2021 - 2024 R. Thomas
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15#ifndef LIEF_PE_ENUMS_H
16#define LIEF_PE_ENUMS_H
17#include <cinttypes>
18#include <cstddef>
19#include "LIEF/enums.hpp"
20#define LIEF_PE_FORCE_UNDEF
21#include "LIEF/PE/undef.h"
22
23namespace LIEF {
24namespace PE {
25
26enum class PE_TYPES: size_t {
27 PE32 = 0x10b,
28 PE32_PLUS = 0x20b
29};
30
31
32enum SYMBOL_SECTION_NUMBER: int {
33 IMAGE_SYM_DEBUG = -2,
34 IMAGE_SYM_ABSOLUTE = -1,
35 IMAGE_SYM_UNDEFINED = 0
36};
37
70
71
90
98
99enum class AuxSymbolType: size_t {
100 IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1
101};
102
103
104enum class RELOCATIONS_I386: size_t {
105 IMAGE_REL_I386_ABSOLUTE = 0x0000,
106 IMAGE_REL_I386_DIR16 = 0x0001,
107 IMAGE_REL_I386_REL16 = 0x0002,
108 IMAGE_REL_I386_DIR32 = 0x0006,
109 IMAGE_REL_I386_DIR32NB = 0x0007,
110 IMAGE_REL_I386_SEG12 = 0x0009,
111 IMAGE_REL_I386_SECTION = 0x000A,
112 IMAGE_REL_I386_SECREL = 0x000B,
113 IMAGE_REL_I386_TOKEN = 0x000C,
114 IMAGE_REL_I386_SECREL7 = 0x000D,
115 IMAGE_REL_I386_REL32 = 0x0014
116};
117
118enum class RELOCATIONS_AMD64: size_t {
119 IMAGE_REL_AMD64_ABSOLUTE = 0x0000,
120 IMAGE_REL_AMD64_ADDR64 = 0x0001,
121 IMAGE_REL_AMD64_ADDR32 = 0x0002,
122 IMAGE_REL_AMD64_ADDR32NB = 0x0003,
123 IMAGE_REL_AMD64_REL32 = 0x0004,
124 IMAGE_REL_AMD64_REL32_1 = 0x0005,
125 IMAGE_REL_AMD64_REL32_2 = 0x0006,
126 IMAGE_REL_AMD64_REL32_3 = 0x0007,
127 IMAGE_REL_AMD64_REL32_4 = 0x0008,
128 IMAGE_REL_AMD64_REL32_5 = 0x0009,
129 IMAGE_REL_AMD64_SECTION = 0x000A,
130 IMAGE_REL_AMD64_SECREL = 0x000B,
131 IMAGE_REL_AMD64_SECREL7 = 0x000C,
132 IMAGE_REL_AMD64_TOKEN = 0x000D,
133 IMAGE_REL_AMD64_SREL32 = 0x000E,
134 IMAGE_REL_AMD64_PAIR = 0x000F,
135 IMAGE_REL_AMD64_SSPAN32 = 0x0010
136};
137
138enum class RELOCATIONS_ARM: size_t {
139 IMAGE_REL_ARM_ABSOLUTE = 0x0000,
140 IMAGE_REL_ARM_ADDR32 = 0x0001,
141 IMAGE_REL_ARM_ADDR32NB = 0x0002,
142 IMAGE_REL_ARM_BRANCH24 = 0x0003,
143 IMAGE_REL_ARM_BRANCH11 = 0x0004,
144 IMAGE_REL_ARM_TOKEN = 0x0005,
145 IMAGE_REL_ARM_BLX24 = 0x0008,
146 IMAGE_REL_ARM_BLX11 = 0x0009,
147 IMAGE_REL_ARM_SECTION = 0x000E,
148 IMAGE_REL_ARM_SECREL = 0x000F,
149 IMAGE_REL_ARM_MOV32A = 0x0010,
150 IMAGE_REL_ARM_MOV32T = 0x0011,
151 IMAGE_REL_ARM_BRANCH20T = 0x0012,
152 IMAGE_REL_ARM_BRANCH24T = 0x0014,
153 IMAGE_REL_ARM_BLX23T = 0x0015
154};
155
156
158enum class WeakExternalCharacteristics: size_t {
159 IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1,
160 IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2,
161 IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3
162};
163
164
165enum class ImportType: size_t {
166 IMPORT_CODE = 0,
167 IMPORT_DATA = 1,
168 IMPORT_CONST = 2
169};
170
171
172enum class ImportNameType: size_t {
177 IMPORT_ORDINAL = 0,
179 IMPORT_NAME = 1,
186};
187
188
189enum class CodeViewIdentifiers: size_t {
190 DEBUG_LINE_TABLES_HAVE_COLUMN_RECORDS = 0x1,
191 DEBUG_SECTION_MAGIC = 0x4,
192 DEBUG_SYMBOL_SUBSECTION = 0xF1,
193 DEBUG_LINE_TABLE_SUBSECTION = 0xF2,
194 DEBUG_STRING_TABLE_SUBSECTION = 0xF3,
195 DEBUG_INDEX_SUBSECTION = 0xF4,
196
197 // Symbol subsections are split into records of different types.
198 DEBUG_SYMBOL_TYPE_PROC_START = 0x1147,
199 DEBUG_SYMBOL_TYPE_PROC_END = 0x114F
200};
201
202
204enum class EXTENDED_WINDOW_STYLES: size_t {
205 WS_EX_DLGMODALFRAME = 0x00000001L,
206 WS_EX_NOPARENTNOTIFY = 0x00000004L,
207 WS_EX_TOPMOST = 0x00000008L,
208 WS_EX_ACCEPTFILES = 0x00000010L,
209 WS_EX_TRANSPARENT = 0x00000020L,
210 WS_EX_MDICHILD = 0x00000040L,
211 WS_EX_TOOLWINDOW = 0x00000080L,
212 WS_EX_WINDOWEDGE = 0x00000100L,
213 WS_EX_CLIENTEDGE = 0x00000200L,
214 WS_EX_CONTEXTHELP = 0x00000400L,
215
216 WS_EX_RIGHT = 0x00001000L,
217 WS_EX_LEFT = 0x00000000L,
218 WS_EX_RTLREADING = 0x00002000L,
219 WS_EX_LTRREADING = 0x00000000L,
220 WS_EX_LEFTSCROLLBAR = 0x00004000L,
221 WS_EX_RIGHTSCROLLBAR = 0x00000000L,
222
223 WS_EX_CONTROLPARENT = 0x00010000L,
224 WS_EX_STATICEDGE = 0x00020000L,
225 WS_EX_APPWINDOW = 0x00040000L,
226};
227
229enum class WINDOW_STYLES: size_t {
230 WS_OVERLAPPED = 0x00000000L,
231 WS_POPUP = 0x80000000L,
232 WS_CHILD = 0x40000000L,
233 WS_MINIMIZE = 0x20000000L,
234 WS_VISIBLE = 0x10000000L,
235 WS_DISABLED = 0x08000000L,
236 WS_CLIPSIBLINGS = 0x04000000L,
237 WS_CLIPCHILDREN = 0x02000000L,
238 WS_MAXIMIZE = 0x01000000L,
239 WS_CAPTION = 0x00C00000L,
240 WS_BORDER = 0x00800000L,
241 WS_DLGFRAME = 0x00400000L,
242 WS_VSCROLL = 0x00200000L,
243 WS_HSCROLL = 0x00100000L,
244 WS_SYSMENU = 0x00080000L,
245 WS_THICKFRAME = 0x00040000L,
246 WS_GROUP = 0x00020000L,
247 WS_TABSTOP = 0x00010000L,
248
249 WS_MINIMIZEBOX = 0x00020000L,
250 WS_MAXIMIZEBOX = 0x00010000L,
251};
252
253
255enum class DIALOG_BOX_STYLES: size_t {
256 DS_ABSALIGN = 0x0001L,
257 DS_SYSMODAL = 0x0002L,
258 DS_LOCALEDIT = 0x0020L,
259 DS_SETFONT = 0x0040L,
260 DS_MODALFRAME = 0x0080L,
261 DS_NOIDLEMSG = 0x0100L,
262 DS_SETFOREGROUND = 0x0200L,
263 DS_3DLOOK = 0x0004L,
264 DS_FIXEDSYS = 0x0008L,
265 DS_NOFAILCREATE = 0x0010L,
266 DS_CONTROL = 0x0400L,
267 DS_CENTER = 0x0800L,
268 DS_CENTERMOUSE = 0x1000L,
269 DS_CONTEXTHELP = 0x2000L,
270 DS_SHELLFONT = 0x0040L | 0x0008L, // DS_SETFONT | DS_FIXEDSYS
271};
272
273enum class FIXED_VERSION_OS: size_t {
274 VOS_UNKNOWN = 0x00000000L,
275 VOS_DOS = 0x00010000L,
276 VOS_NT = 0x00040000L,
277 VOS__WINDOWS16 = 0x00000001L,
278 VOS__WINDOWS32 = 0x00000004L,
279 VOS_OS216 = 0x00020000L,
280 VOS_OS232 = 0x00030000L,
281 VOS__PM16 = 0x00000002L,
282 VOS__PM32 = 0x00000003L,
283 VOS_DOS_WINDOWS16 = 0x00010000L | 0x00000001L, // VOS_DOS | VOS__WINDOWS16
284 VOS_DOS_WINDOWS32 = 0x00010000L | 0x00000004L, // VOS_DOS | VOS__WINDOWS32
285 VOS_NT_WINDOWS32 = 0x00040000L | 0x00000004L, // VOS_NT | VOS__WINDOWS32
286 VOS_OS216_PM16 = 0x00020000L | 0x00000002L, // VOS_OS216 | VOS__PM16
287 VOS_OS232_PM32 = 0x00030000L | 0x00000003L, // VOS_OS232 | VOS__PM32
288};
289
290
291enum class FIXED_VERSION_FILE_FLAGS: size_t {
292 VS_FF_DEBUG = 0x00000001L,
293 VS_FF_INFOINFERRED = 0x00000010L,
294 VS_FF_PATCHED = 0x00000004L,
295 VS_FF_PRERELEASE = 0x00000002L,
296 VS_FF_PRIVATEBUILD = 0x00000008L,
297 VS_FF_SPECIALBUILD = 0x00000020L,
298};
299
300
301enum class FIXED_VERSION_FILE_TYPES: size_t {
302 VFT_APP = 0x00000001L,
303 VFT_DLL = 0x00000002L,
304 VFT_DRV = 0x00000003L,
305 VFT_FONT = 0x00000004L,
306 VFT_STATIC_LIB = 0x00000007L,
307 VFT_UNKNOWN = 0x00000000L,
308 VFT_VXD = 0x00000005L,
309};
310
311
312enum class FIXED_VERSION_FILE_SUB_TYPES: size_t {
313 VFT2_DRV_COMM = 0x0000000AL,
314 VFT2_DRV_DISPLAY = 0x00000004L,
315 VFT2_DRV_INSTALLABLE = 0x00000008L,
316 VFT2_DRV_KEYBOARD = 0x00000002L,
317 VFT2_DRV_LANGUAGE = 0x00000003L,
318 VFT2_DRV_MOUSE = 0x00000005L,
319 VFT2_DRV_NETWORK = 0x00000006L,
320 VFT2_DRV_PRINTER = 0x00000001L,
321 VFT2_DRV_SOUND = 0x00000009L,
322 VFT2_DRV_SYSTEM = 0x00000007L,
323 VFT2_DRV_VERSIONED_PRINTER = 0x0000000CL,
324
325 VFT2_FONT_RASTER = 0x00000001L,
326 VFT2_FONT_TRUETYPE = 0x00000003L,
327 VFT2_FONT_VECTOR = 0x00000002L,
328
329 VFT2_UNKNOWN = 0x00000000L,
330};
331
333enum class CODE_PAGES: size_t {
334 CP_IBM037 = 37,
335 CP_IBM437 = 437,
336 CP_IBM500 = 500,
337 CP_ASMO_708 = 708,
338 CP_DOS_720 = 720,
339 CP_IBM737 = 737,
340 CP_IBM775 = 775,
341 CP_IBM850 = 850,
342 CP_IBM852 = 852,
343 CP_IBM855 = 855,
344 CP_IBM857 = 857,
345 CP_IBM00858 = 858,
346 CP_IBM860 = 860,
347 CP_IBM861 = 861,
348 CP_DOS_862 = 862,
349 CP_IBM863 = 863,
350 CP_IBM864 = 864,
351 CP_IBM865 = 865,
352 CP_CP866 = 866,
353 CP_IBM869 = 869,
354 CP_IBM870 = 870,
355 CP_WINDOWS_874 = 874,
356 CP_CP875 = 875,
357 CP_SHIFT_JIS = 932,
358 CP_GB2312 = 936,
359 CP_KS_C_5601_1987 = 949,
360 CP_BIG5 = 950,
361 CP_IBM1026 = 1026,
362 CP_IBM01047 = 1047,
363 CP_IBM01140 = 1140,
364 CP_IBM01141 = 1141,
365 CP_IBM01142 = 1142,
366 CP_IBM01143 = 1143,
367 CP_IBM01144 = 1144,
368 CP_IBM01145 = 1145,
369 CP_IBM01146 = 1146,
370 CP_IBM01147 = 1147,
371 CP_IBM01148 = 1148,
372 CP_IBM01149 = 1149,
373 CP_UTF_16 = 1200,
374 CP_UNICODEFFFE = 1201,
375 CP_WINDOWS_1250 = 1250,
376 CP_WINDOWS_1251 = 1251,
377 CP_WINDOWS_1252 = 1252,
378 CP_WINDOWS_1253 = 1253,
379 CP_WINDOWS_1254 = 1254,
380 CP_WINDOWS_1255 = 1255,
381 CP_WINDOWS_1256 = 1256,
382 CP_WINDOWS_1257 = 1257,
383 CP_WINDOWS_1258 = 1258,
384 CP_JOHAB = 1361,
385 CP_MACINTOSH = 10000,
386 CP_X_MAC_JAPANESE = 10001,
387 CP_X_MAC_CHINESETRAD = 10002,
388 CP_X_MAC_KOREAN = 10003,
389 CP_X_MAC_ARABIC = 10004,
390 CP_X_MAC_HEBREW = 10005,
391 CP_X_MAC_GREEK = 10006,
392 CP_X_MAC_CYRILLIC = 10007,
393 CP_X_MAC_CHINESESIMP = 10008,
394 CP_X_MAC_ROMANIAN = 10010,
395 CP_X_MAC_UKRAINIAN = 10017,
396 CP_X_MAC_THAI = 10021,
397 CP_X_MAC_CE = 10029,
398 CP_X_MAC_ICELANDIC = 10079,
399 CP_X_MAC_TURKISH = 10081,
400 CP_X_MAC_CROATIAN = 10082,
401 CP_UTF_32 = 12000,
402 CP_UTF_32BE = 12001,
403 CP_X_CHINESE_CNS = 20000,
404 CP_X_CP20001 = 20001,
405 CP_X_CHINESE_ETEN = 20002,
406 CP_X_CP20003 = 20003,
407 CP_X_CP20004 = 20004,
408 CP_X_CP20005 = 20005,
409 CP_X_IA5 = 20105,
410 CP_X_IA5_GERMAN = 20106,
411 CP_X_IA5_SWEDISH = 20107,
412 CP_X_IA5_NORWEGIAN = 20108,
413 CP_US_ASCII = 20127,
414 CP_X_CP20261 = 20261,
415 CP_X_CP20269 = 20269,
416 CP_IBM273 = 20273,
417 CP_IBM277 = 20277,
418 CP_IBM278 = 20278,
419 CP_IBM280 = 20280,
420 CP_IBM284 = 20284,
421 CP_IBM285 = 20285,
422 CP_IBM290 = 20290,
423 CP_IBM297 = 20297,
424 CP_IBM420 = 20420,
425 CP_IBM423 = 20423,
426 CP_IBM424 = 20424,
428 CP_IBM_THAI = 20838,
429 CP_KOI8_R = 20866,
430 CP_IBM871 = 20871,
431 CP_IBM880 = 20880,
432 CP_IBM905 = 20905,
433 CP_IBM00924 = 20924,
434 CP_EUC_JP_JIS = 20932,
435 CP_X_CP20936 = 20936,
436 CP_X_CP20949 = 20949,
437 CP_CP1025 = 21025,
438 CP_KOI8_U = 21866,
439 CP_ISO_8859_1 = 28591,
440 CP_ISO_8859_2 = 28592,
441 CP_ISO_8859_3 = 28593,
442 CP_ISO_8859_4 = 28594,
443 CP_ISO_8859_5 = 28595,
444 CP_ISO_8859_6 = 28596,
445 CP_ISO_8859_7 = 28597,
446 CP_ISO_8859_8 = 28598,
447 CP_ISO_8859_9 = 28599,
448 CP_ISO_8859_13 = 28603,
449 CP_ISO_8859_15 = 28605,
450 CP_X_EUROPA = 29001,
451 CP_ISO_8859_8_I = 38598,
452 CP_ISO_2022_JP = 50220,
453 CP_CSISO2022JP = 50221,
454 CP_ISO_2022_JP_JIS = 50222,
455 CP_ISO_2022_KR = 50225,
456 CP_X_CP50227 = 50227,
457 CP_EUC_JP = 51932,
458 CP_EUC_CN = 51936,
459 CP_EUC_KR = 51949,
460 CP_HZ_GB_2312 = 52936,
461 CP_GB18030 = 54936,
462 CP_X_ISCII_DE = 57002,
463 CP_X_ISCII_BE = 57003,
464 CP_X_ISCII_TA = 57004,
465 CP_X_ISCII_TE = 57005,
466 CP_X_ISCII_AS = 57006,
467 CP_X_ISCII_OR = 57007,
468 CP_X_ISCII_KA = 57008,
469 CP_X_ISCII_MA = 57009,
470 CP_X_ISCII_GU = 57010,
471 CP_X_ISCII_PA = 57011,
472 CP_UTF_7 = 65000,
473 CP_UTF_8 = 65001,
474};
475
477enum class ACCELERATOR_FLAGS: size_t {
478 FVIRTKEY = 0x01,
479 FNOINVERT = 0x02,
480 FSHIFT = 0x04,
481 FCONTROL = 0x08,
482 FALT = 0x10,
483 END = 0x80,
484};
485
487enum class ACCELERATOR_VK_CODES: size_t {
488 VK_LBUTTON = 0x01,
489 VK_RBUTTON = 0x02,
490 VK_CANCEL = 0x03,
491 VK_MBUTTON = 0x04,
492 VK_XBUTTON1 = 0x05,
493 VK_XBUTTON2 = 0x06,
494 VK_BACK = 0x08,
495 VK_TAB = 0x09,
496 VK_CLEAR = 0x0C,
497 VK_RETURN = 0x0D,
498 VK_SHIFT = 0x10,
499 VK_CONTROL = 0x11,
500 VK_MENU = 0x12,
501 VK_PAUSE = 0x13,
502 VK_CAPITAL = 0x14,
503 VK_KANA = 0x15,
504 VK_HANGUEL = 0x15,
505 VK_HANGUL = 0x15,
506 VK_IME_ON = 0x16,
507 VK_JUNJA = 0x17,
508 VK_FINAL = 0x18,
509 VK_HANJA = 0x19,
510 VK_KANJI = 0x19,
511 VK_IME_OFF = 0x1A,
512 VK_ESCAPE = 0x1B,
513 VK_CONVERT = 0x1C,
514 VK_NONCONVERT = 0x1D,
515 VK_ACCEPT = 0x1E,
516 VK_MODECHANGE = 0x1F,
517 VK_SPACE = 0x20,
518 VK_PRIOR = 0x21,
519 VK_NEXT = 0x22,
520 VK_END = 0x23,
521 VK_HOME = 0x24,
522 VK_LEFT = 0x25,
523 VK_UP = 0x26,
524 VK_RIGHT = 0x27,
525 VK_DOWN = 0x28,
526 VK_SELECT = 0x29,
527 VK_PRINT = 0x2A,
528 VK_EXECUTE = 0x2B,
529 VK_SNAPSHOT = 0x2C,
530 VK_INSERT = 0x2D,
531 VK_DELETE = 0x2E,
532 VK_HELP = 0x2F,
533 VK_0 = 0x30,
534 VK_1 = 0x31,
535 VK_2 = 0x32,
536 VK_3 = 0x33,
537 VK_4 = 0x34,
538 VK_5 = 0x35,
539 VK_6 = 0x36,
540 VK_7 = 0x37,
541 VK_8 = 0x38,
542 VK_9 = 0x39,
543 VK_A = 0x41,
544 VK_B = 0x42,
545 VK_C = 0x43,
546 VK_D = 0x44,
547 VK_E = 0x45,
548 VK_F = 0x46,
549 VK_G = 0x47,
550 VK_H = 0x48,
551 VK_I = 0x49,
552 VK_J = 0x4A,
553 VK_K = 0x4B,
554 VK_L = 0x4C,
555 VK_M = 0x4D,
556 VK_N = 0x4E,
557 VK_O = 0x4F,
558 VK_P = 0x50,
559 VK_Q = 0x51,
560 VK_R = 0x52,
561 VK_S = 0x53,
562 VK_T = 0x54,
563 VK_U = 0x55,
564 VK_V = 0x56,
565 VK_W = 0x57,
566 VK_X = 0x58,
567 VK_Y = 0x59,
568 VK_Z = 0x60,
569 VK_LWIN = 0x5B,
570 VK_RWIN = 0x5C,
571 VK_APPS = 0x5D,
572 VK_SLEEP = 0x5F,
573 VK_NUMPAD0 = 0x60,
574 VK_NUMPAD1 = 0x61,
575 VK_NUMPAD2 = 0x62,
576 VK_NUMPAD3 = 0x63,
577 VK_NUMPAD4 = 0x64,
578 VK_NUMPAD5 = 0x65,
579 VK_NUMPAD6 = 0x66,
580 VK_NUMPAD7 = 0x67,
581 VK_NUMPAD8 = 0x68,
582 VK_NUMPAD9 = 0x69,
583 VK_MULTIPLY = 0x6A,
584 VK_ADD = 0x6B,
585 VK_SEPARATOR = 0x6C,
586 VK_SUBTRACT = 0x6D,
587 VK_DECIMAL = 0x6E,
588 VK_DIVIDE = 0x6F,
589 VK_F1 = 0x70,
590 VK_F2 = 0x71,
591 VK_F3 = 0x72,
592 VK_F4 = 0x73,
593 VK_F5 = 0x74,
594 VK_F6 = 0x75,
595 VK_F7 = 0x76,
596 VK_F8 = 0x77,
597 VK_F9 = 0x78,
598 VK_F10 = 0x79,
599 VK_F11 = 0x7A,
600 VK_F12 = 0x7B,
601 VK_F13 = 0x7C,
602 VK_F14 = 0x7D,
603 VK_F15 = 0x7E,
604 VK_F16 = 0x7F,
605 VK_F17 = 0x80,
606 VK_F18 = 0x81,
607 VK_F19 = 0x82,
608 VK_F20 = 0x83,
609 VK_F21 = 0x84,
610 VK_F22 = 0x85,
611 VK_F23 = 0x86,
612 VK_F24 = 0x87,
613 VK_NUMLOCK = 0x90,
614 VK_SCROLL = 0x91,
615 VK_LSHIFT = 0xA0,
616 VK_RSHIFT = 0xA1,
617 VK_LCONTROL = 0xA2,
618 VK_RCONTROL = 0xA3,
619 VK_LMENU = 0xA4,
620 VK_RMENU = 0xA5,
621 VK_BROWSER_BACK = 0xA6,
622 VK_BROWSER_FORWARD = 0xA7,
623 VK_BROWSER_REFRESH = 0xA8,
624 VK_BROWSER_STOP = 0xA9,
625 VK_BROWSER_SEARCH = 0xAA,
626 VK_BROWSER_FAVORITES = 0xAB,
627 VK_BROWSER_HOME = 0xAC,
628 VK_VOLUME_MUTE = 0xAD,
629 VK_VOLUME_DOWN = 0xAE,
630 VK_VOLUME_UP = 0xAF,
631 VK_MEDIA_NEXT_TRACK = 0xB0,
632 VK_MEDIA_PREV_TRACK = 0xB1,
633 VK_MEDIA_STOP = 0xB2,
634 VK_MEDIA_PLAY_PAUSE = 0xB3,
635 VK_LAUNCH_MAIL = 0xB4,
636 VK_LAUNCH_MEDIA_SELECT = 0xB5,
637 VK_LAUNCH_APP1 = 0xB6,
638 VK_LAUNCH_APP2 = 0xB7,
639 VK_OEM_1 = 0xBA,
640 VK_OEM_PLUS = 0xBB,
641 VK_OEM_COMMA = 0xBC,
642 VK_OEM_MINUS = 0xBD,
643 VK_OEM_PERIOD = 0xBE,
644 VK_OEM_2 = 0xBF,
645 VK_OEM_4 = 0xDB,
646 VK_OEM_5 = 0xDC,
647 VK_OEM_6 = 0xDD,
648 VK_OEM_7 = 0xDE,
649 VK_OEM_8 = 0xDF,
650 VK_OEM_102 = 0xE2,
651 VK_PROCESSKEY = 0xE5,
652 VK_PACKET = 0xE7,
653 VK_ATTN = 0xF6,
654 VK_CRSEL = 0xF7,
655 VK_EXSEL = 0xF8,
656 VK_EREOF = 0xF9,
657 VK_PLAY = 0xFA,
658 VK_ZOOM = 0xFB,
659 VK_NONAME = 0xFC,
660 VK_PA1 = 0xFD,
661 VK_OEM_CLEAR = 0xFE,
662};
663
664
666enum class PE_SECTION_TYPES : uint8_t {
667 TEXT = 0,
668 TLS = 1,
669 IMPORT = 2,
670 DATA = 3,
671 BSS = 4,
672 RESOURCE = 5,
673 RELOCATION = 6,
674 EXPORT = 7,
675 DEBUG_TYPE = 8,
676 LOAD_CONFIG = 9,
677 UNKNOWN = 10
678};
679
680enum class PE_TYPE : uint16_t {
681 PE32 = 0x10b,
682 PE32_PLUS = 0x20b
683};
684
686enum class ALGORITHMS : uint32_t {
687 UNKNOWN = 0,
688 SHA_512,
689 SHA_384,
690 SHA_256,
691 SHA_1,
692
693 MD5,
694 MD4,
695 MD2,
696
697 RSA,
698 EC,
699
700 MD5_RSA,
701 SHA1_DSA,
702 SHA1_RSA,
703 SHA_256_RSA,
704 SHA_384_RSA,
705 SHA_512_RSA,
706 SHA1_ECDSA,
707 SHA_256_ECDSA,
708 SHA_384_ECDSA,
709 SHA_512_ECDSA,
710};
711
712}
713}
714
715ENABLE_BITMASK_OPERATORS(LIEF::PE::ACCELERATOR_FLAGS)
716#endif
Class which represents the PE Thread Local Storage.
Definition TLS.hpp:45
PE_SECTION_TYPES
Common section type.
Definition PE/enums.hpp:666
ALGORITHMS
Cryptography algorithms.
Definition PE/enums.hpp:686
WeakExternalCharacteristics
These are not documented in the spec, but are located in WinNT.h.
Definition PE/enums.hpp:158
ACCELERATOR_VK_CODES
From https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes.
Definition PE/enums.hpp:487
EXTENDED_WINDOW_STYLES
From https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles.
Definition PE/enums.hpp:204
SYMBOL_BASE_TYPES
Definition PE/enums.hpp:72
@ IMAGE_SYM_TYPE_BYTE
A byte; unsigned 1-byte integer.
@ IMAGE_SYM_TYPE_CHAR
A character (signed byte).
@ IMAGE_SYM_TYPE_FLOAT
A 4-byte floating-point number.
@ IMAGE_SYM_TYPE_NULL
No type information or unknown base type.
@ IMAGE_SYM_TYPE_WORD
A word; unsigned 2-byte integer.
@ IMAGE_SYM_TYPE_SHORT
A 2-byte signed integer.
@ IMAGE_SYM_TYPE_MOE
A member of enumeration (a specific value).
@ IMAGE_SYM_TYPE_LONG
A 4-byte signed integer.
@ IMAGE_SYM_TYPE_DWORD
An unsigned 4-byte integer.
@ IMAGE_SYM_TYPE_STRUCT
A structure.
@ IMAGE_SYM_TYPE_DOUBLE
An 8-byte floating-point number.
@ IMAGE_SYM_TYPE_INT
A natural integer type on the target.
@ IMAGE_SYM_TYPE_VOID
Used with void pointers and functions.
@ IMAGE_SYM_TYPE_UINT
An unsigned integer of natural size.
@ IMAGE_SYM_TYPE_ENUM
An enumerated type.
WINDOW_STYLES
From: https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles.
Definition PE/enums.hpp:229
ACCELERATOR_FLAGS
From https://docs.microsoft.com/en-us/windows/win32/menurc/acceltableentry.
Definition PE/enums.hpp:477
SYMBOL_STORAGE_CLASS
Storage class tells where and what the symbol represents.
Definition PE/enums.hpp:39
@ IMAGE_SYM_CLASS_STATIC
Static.
Definition PE/enums.hpp:46
@ IMAGE_SYM_CLASS_BLOCK
".bf" or ".ef" - beginning or end of function
Definition PE/enums.hpp:62
@ IMAGE_SYM_CLASS_END_OF_STRUCT
End of structure.
Definition PE/enums.hpp:64
@ IMAGE_SYM_CLASS_STRUCT_TAG
Structure tag.
Definition PE/enums.hpp:53
@ IMAGE_SYM_CLASS_NULL
No symbol.
Definition PE/enums.hpp:43
@ IMAGE_SYM_CLASS_REGISTER_PARAM
Register parameter.
Definition PE/enums.hpp:60
@ IMAGE_SYM_CLASS_MEMBER_OF_STRUCT
Member of structure.
Definition PE/enums.hpp:51
@ IMAGE_SYM_CLASS_END_OF_FUNCTION
Physical end of function.
Definition PE/enums.hpp:42
@ IMAGE_SYM_CLASS_FILE
File name line number, reformatted as symbol.
Definition PE/enums.hpp:65
@ IMAGE_SYM_CLASS_WEAK_EXTERNAL
Duplicate tag external symbol in dmert public lib.
Definition PE/enums.hpp:67
@ IMAGE_SYM_CLASS_LABEL
Label.
Definition PE/enums.hpp:49
@ IMAGE_SYM_CLASS_BIT_FIELD
Bit field ".bb" or ".eb" - beginning or end of block.
Definition PE/enums.hpp:61
@ IMAGE_SYM_CLASS_UNION_TAG
Union tag.
Definition PE/enums.hpp:55
@ IMAGE_SYM_CLASS_ENUM_TAG
Enumeration tag.
Definition PE/enums.hpp:58
@ IMAGE_SYM_CLASS_TYPE_DEFINITION
Type definition.
Definition PE/enums.hpp:56
@ IMAGE_SYM_CLASS_UNDEFINED_LABEL
Undefined label.
Definition PE/enums.hpp:50
@ IMAGE_SYM_CLASS_REGISTER
Register variable.
Definition PE/enums.hpp:47
@ IMAGE_SYM_CLASS_MEMBER_OF_UNION
Member of union.
Definition PE/enums.hpp:54
@ IMAGE_SYM_CLASS_ARGUMENT
Function argument.
Definition PE/enums.hpp:52
@ IMAGE_SYM_CLASS_MEMBER_OF_ENUM
Member of enumeration.
Definition PE/enums.hpp:59
@ IMAGE_SYM_CLASS_AUTOMATIC
Stack variable.
Definition PE/enums.hpp:44
@ IMAGE_SYM_CLASS_EXTERNAL_DEF
External definition.
Definition PE/enums.hpp:48
@ IMAGE_SYM_CLASS_EXTERNAL
External symbol.
Definition PE/enums.hpp:45
@ IMAGE_SYM_CLASS_UNDEFINED_STATIC
Undefined static.
Definition PE/enums.hpp:57
PE_TYPES
Definition PE/enums.hpp:26
ImportNameType
Definition PE/enums.hpp:172
@ IMPORT_NAME
The import name is identical to the public symbol name.
@ IMPORT_NAME_UNDECORATE
The import name is the public symbol name, but skipping the leading ?, @, or optionally _,...
@ IMPORT_NAME_NOPREFIX
The import name is the public symbol name, but skipping the leading ?, @, or optionally _.
@ IMPORT_ORDINAL
Import is by ordinal. This indicates that the value in the Ordinal/Hint field of the import header is...
CODE_PAGES
Code page from https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers.
Definition PE/enums.hpp:333
SYMBOL_COMPLEX_TYPES
Definition PE/enums.hpp:91
@ IMAGE_SYM_DTYPE_FUNCTION
A function that returns a base type.
@ IMAGE_SYM_DTYPE_ARRAY
An array of base type.
@ IMAGE_SYM_DTYPE_NULL
No complex type; simple scalar variable.
@ SCT_COMPLEX_TYPE_SHIFT
Type is formed as (base + (derived << SCT_COMPLEX_TYPE_SHIFT))
@ IMAGE_SYM_DTYPE_POINTER
A pointer to base type.
PE_TYPE
Definition PE/enums.hpp:680
DIALOG_BOX_STYLES
From https://docs.microsoft.com/en-us/windows/win32/dlgbox/dialog-box-styles.
Definition PE/enums.hpp:255
LIEF namespace.
Definition Abstract/Binary.hpp:32