| pefile (version 1.2.6) | index /Volumes/Personal Image/Devel/pefile/pefile.py |
pefile, Portable Executable reader module
All the PE file basic structures are available with their default names
as attributes of the instance returned.
Processed elements such as the import table are made available with lowercase
names, to differentiate them from the upper case basic structure names.
pefile has been tested against the limits of valid PE headers, that is, malware.
Lots of packed malware attempt to abuse the format way beyond its standard use.
To the best of my knowledge most of the abuses are handled gracefully.
Copyright (c) 2005, 2006, 2007 Ero Carrera <ero@dkbza.org>
All rights reserved.
For detailed copyright information see the file COPYING in
the root of the distribution archive.
| Modules | ||||||
| ||||||
| Classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Data | ||
| DEBUG_TYPE = {0: 'IMAGE_DEBUG_TYPE_UNKNOWN', 1: 'IMAGE_DEBUG_TYPE_COFF', 2: 'IMAGE_DEBUG_TYPE_CODEVIEW', 3: 'IMAGE_DEBUG_TYPE_FPO', 4: 'IMAGE_DEBUG_TYPE_MISC', 5: 'IMAGE_DEBUG_TYPE_EXCEPTION', 6: 'IMAGE_DEBUG_TYPE_FIXUP', 7: 'IMAGE_DEBUG_TYPE_OMAP_TO_SRC', 8: 'IMAGE_DEBUG_TYPE_OMAP_FROM_SRC', 9: 'IMAGE_DEBUG_TYPE_BORLAND', ...} DIRECTORY_ENTRY = {0: 'IMAGE_DIRECTORY_ENTRY_EXPORT', 1: 'IMAGE_DIRECTORY_ENTRY_IMPORT', 2: 'IMAGE_DIRECTORY_ENTRY_RESOURCE', 3: 'IMAGE_DIRECTORY_ENTRY_EXCEPTION', 4: 'IMAGE_DIRECTORY_ENTRY_SECURITY', 5: 'IMAGE_DIRECTORY_ENTRY_BASERELOC', 6: 'IMAGE_DIRECTORY_ENTRY_DEBUG', 7: 'IMAGE_DIRECTORY_ENTRY_COPYRIGHT', 8: 'IMAGE_DIRECTORY_ENTRY_GLOBALPTR', 9: 'IMAGE_DIRECTORY_ENTRY_TLS', ...} IMAGE_CHARACTERISTICS = {1: 'IMAGE_FILE_RELOCS_STRIPPED', 2: 'IMAGE_FILE_EXECUTABLE_IMAGE', 4: 'IMAGE_FILE_LINE_NUMS_STRIPPED', 8: 'IMAGE_FILE_LOCAL_SYMS_STRIPPED', 16: 'IMAGE_FILE_AGGRESIVE_WS_TRIM', 32: 'IMAGE_FILE_LARGE_ADDRESS_AWARE', 64: 'IMAGE_FILE_16BIT_MACHINE', 128: 'IMAGE_FILE_BYTES_REVERSED_LO', 256: 'IMAGE_FILE_32BIT_MACHINE', 512: 'IMAGE_FILE_DEBUG_STRIPPED', ...} IMAGE_DOS_SIGNATURE = 23117 IMAGE_NT_SIGNATURE = 17744 IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 IMAGE_ORDINAL_FLAG = 2147483648L IMAGE_ORDINAL_FLAG64 = 9223372036854775808L IMAGE_OS2_SIGNATURE = 17742 IMAGE_OS2_SIGNATURE_LE = 17740 IMAGE_VXD_SIGNATURE = 17740 LANG = {0: 'LANG_NEUTRAL', 1: 'LANG_ARABIC', 2: 'LANG_BULGARIAN', 3: 'LANG_CATALAN', 4: 'LANG_CHINESE', 5: 'LANG_CZECH', 6: 'LANG_DANISH', 7: 'LANG_GERMAN', 8: 'LANG_GREEK', 9: 'LANG_ENGLISH', ...} MACHINE_TYPE = {0: 'IMAGE_FILE_MACHINE_UNKNOWN', 332: 'IMAGE_FILE_MACHINE_I386', 358: 'IMAGE_FILE_MACHINE_R4000', 361: 'IMAGE_FILE_MACHINE_WCEMIPSV2', 418: 'IMAGE_FILE_MACHINE_SH3', 419: 'IMAGE_FILE_MACHINE_SH3DSP', 422: 'IMAGE_FILE_MACHINE_SH4', 424: 'IMAGE_FILE_MACHINE_SH5', 448: 'IMAGE_FILE_MACHINE_ARM', 450: 'IMAGE_FILE_MACHINE_THUMB', ...} OPTIONAL_HEADER_MAGIC_PE = 267 OPTIONAL_HEADER_MAGIC_PE_PLUS = 523 RELOCATION_TYPE = {0: 'IMAGE_REL_BASED_ABSOLUTE', 1: 'IMAGE_REL_BASED_HIGH', 2: 'IMAGE_REL_BASED_LOW', 3: 'IMAGE_REL_BASED_HIGHLOW', 4: 'IMAGE_REL_BASED_HIGHADJ', 5: 'IMAGE_REL_BASED_MIPS_JMPADDR', 6: 'IMAGE_REL_BASED_SECTION', 7: 'IMAGE_REL_BASED_REL', 9: 'IMAGE_REL_BASED_IA64_IMM64', 10: 'IMAGE_REL_BASED_DIR64', ...} RESOURCE_TYPE = {1: 'RT_CURSOR', 2: 'RT_BITMAP', 3: 'RT_ICON', 4: 'RT_MENU', 5: 'RT_DIALOG', 6: 'RT_STRING', 7: 'RT_FONTDIR', 8: 'RT_FONT', 9: 'RT_ACCELERATOR', 10: 'RT_RCDATA', ...} SECTION_CHARACTERISTICS = {32: 'IMAGE_SCN_CNT_CODE', 64: 'IMAGE_SCN_CNT_INITIALIZED_DATA', 128: 'IMAGE_SCN_CNT_UNINITIALIZED_DATA', 256: 'IMAGE_SCN_LNK_OTHER', 512: 'IMAGE_SCN_LNK_INFO', 2048: 'IMAGE_SCN_LNK_REMOVE', 4096: 'IMAGE_SCN_LNK_COMDAT', 32768: 'IMAGE_SCN_MEM_FARDATA', 131072: 'IMAGE_SCN_MEM_16BIT', 262144: 'IMAGE_SCN_MEM_LOCKED', ...} SUBLANG = {0: 'SUBLANG_NEUTRAL', 1: 'SUBLANG_GAELIC', 2: 'SUBLANG_GAELIC_SCOTTISH', 3: 'SUBLANG_GAELIC_MANX', 4: 'SUBLANG_SPANISH_GUATEMALA', 5: 'SUBLANG_SPANISH_COSTA_RICA', 6: 'SUBLANG_SPANISH_PANAMA', 7: 'SUBLANG_SPANISH_DOMINICAN_REPUBLIC', 8: 'SUBLANG_SPANISH_VENEZUELA', 9: 'SUBLANG_SPANISH_COLOMBIA', ...} SUBSYSTEM_TYPE = {0: 'IMAGE_SUBSYSTEM_UNKNOWN', 1: 'IMAGE_SUBSYSTEM_NATIVE', 2: 'IMAGE_SUBSYSTEM_WINDOWS_GUI', 3: 'IMAGE_SUBSYSTEM_WINDOWS_CUI', 5: 'IMAGE_SUBSYSTEM_OS2_CUI', 7: 'IMAGE_SUBSYSTEM_POSIX_CUI', 14: 'IMAGE_SUBSYSTEM_XBOX', 'IMAGE_SUBSYSTEM_NATIVE': 1, 'IMAGE_SUBSYSTEM_OS2_CUI': 5, 'IMAGE_SUBSYSTEM_POSIX_CUI': 7, ...} __author__ = 'Ero Carrera' __contact__ = 'ero@dkbza.org' __version__ = '1.2.6' debug_types = [('IMAGE_DEBUG_TYPE_UNKNOWN', 0), ('IMAGE_DEBUG_TYPE_COFF', 1), ('IMAGE_DEBUG_TYPE_CODEVIEW', 2), ('IMAGE_DEBUG_TYPE_FPO', 3), ('IMAGE_DEBUG_TYPE_MISC', 4), ('IMAGE_DEBUG_TYPE_EXCEPTION', 5), ('IMAGE_DEBUG_TYPE_FIXUP', 6), ('IMAGE_DEBUG_TYPE_OMAP_TO_SRC', 7), ('IMAGE_DEBUG_TYPE_OMAP_FROM_SRC', 8), ('IMAGE_DEBUG_TYPE_BORLAND', 9), ('IMAGE_DEBUG_TYPE_RESERVED10', 10)] directory_entry_types = [('IMAGE_DIRECTORY_ENTRY_EXPORT', 0), ('IMAGE_DIRECTORY_ENTRY_IMPORT', 1), ('IMAGE_DIRECTORY_ENTRY_RESOURCE', 2), ('IMAGE_DIRECTORY_ENTRY_EXCEPTION', 3), ('IMAGE_DIRECTORY_ENTRY_SECURITY', 4), ('IMAGE_DIRECTORY_ENTRY_BASERELOC', 5), ('IMAGE_DIRECTORY_ENTRY_DEBUG', 6), ('IMAGE_DIRECTORY_ENTRY_COPYRIGHT', 7), ('IMAGE_DIRECTORY_ENTRY_GLOBALPTR', 8), ('IMAGE_DIRECTORY_ENTRY_TLS', 9), ('IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG', 10), ('IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT', 11), ('IMAGE_DIRECTORY_ENTRY_IAT', 12), ('IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT', 13), ('IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR', 14), ('IMAGE_DIRECTORY_ENTRY_RESERVED', 15)] e = ('SUBLANG_GAELIC_MANX', 3) fast_load = False image_characteristics = [('IMAGE_FILE_RELOCS_STRIPPED', 1), ('IMAGE_FILE_EXECUTABLE_IMAGE', 2), ('IMAGE_FILE_LINE_NUMS_STRIPPED', 4), ('IMAGE_FILE_LOCAL_SYMS_STRIPPED', 8), ('IMAGE_FILE_AGGRESIVE_WS_TRIM', 16), ('IMAGE_FILE_LARGE_ADDRESS_AWARE', 32), ('IMAGE_FILE_16BIT_MACHINE', 64), ('IMAGE_FILE_BYTES_REVERSED_LO', 128), ('IMAGE_FILE_32BIT_MACHINE', 256), ('IMAGE_FILE_DEBUG_STRIPPED', 512), ('IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP', 1024), ('IMAGE_FILE_NET_RUN_FROM_SWAP', 2048), ('IMAGE_FILE_SYSTEM', 4096), ('IMAGE_FILE_DLL', 8192), ('IMAGE_FILE_UP_SYSTEM_ONLY', 16384), ('IMAGE_FILE_BYTES_REVERSED_HI', 32768)] lang = [('LANG_NEUTRAL', 0), ('LANG_INVARIANT', 127), ('LANG_AFRIKAANS', 54), ('LANG_ALBANIAN', 28), ('LANG_ARABIC', 1), ('LANG_ARMENIAN', 43), ('LANG_ASSAMESE', 77), ('LANG_AZERI', 44), ('LANG_BASQUE', 45), ('LANG_BELARUSIAN', 35), ('LANG_BENGALI', 69), ('LANG_BULGARIAN', 2), ('LANG_CATALAN', 3), ('LANG_CHINESE', 4), ('LANG_CROATIAN', 26), ('LANG_CZECH', 5), ('LANG_DANISH', 6), ('LANG_DIVEHI', 101), ('LANG_DUTCH', 19), ('LANG_ENGLISH', 9), ...] machine_types = [('IMAGE_FILE_MACHINE_UNKNOWN', 0), ('IMAGE_FILE_MACHINE_AM33', 467), ('IMAGE_FILE_MACHINE_AMD64', 34404), ('IMAGE_FILE_MACHINE_ARM', 448), ('IMAGE_FILE_MACHINE_EBC', 3772), ('IMAGE_FILE_MACHINE_I386', 332), ('IMAGE_FILE_MACHINE_IA64', 512), ('IMAGE_FILE_MACHINE_MR32', 36929), ('IMAGE_FILE_MACHINE_MIPS16', 614), ('IMAGE_FILE_MACHINE_MIPSFPU', 870), ('IMAGE_FILE_MACHINE_MIPSFPU16', 1126), ('IMAGE_FILE_MACHINE_POWERPC', 496), ('IMAGE_FILE_MACHINE_POWERPCFP', 497), ('IMAGE_FILE_MACHINE_R4000', 358), ('IMAGE_FILE_MACHINE_SH3', 418), ('IMAGE_FILE_MACHINE_SH3DSP', 419), ('IMAGE_FILE_MACHINE_SH4', 422), ('IMAGE_FILE_MACHINE_SH5', 424), ('IMAGE_FILE_MACHINE_THUMB', 450), ('IMAGE_FILE_MACHINE_WCEMIPSV2', 361)] relocation_types = [('IMAGE_REL_BASED_ABSOLUTE', 0), ('IMAGE_REL_BASED_HIGH', 1), ('IMAGE_REL_BASED_LOW', 2), ('IMAGE_REL_BASED_HIGHLOW', 3), ('IMAGE_REL_BASED_HIGHADJ', 4), ('IMAGE_REL_BASED_MIPS_JMPADDR', 5), ('IMAGE_REL_BASED_SECTION', 6), ('IMAGE_REL_BASED_REL', 7), ('IMAGE_REL_BASED_MIPS_JMPADDR16', 9), ('IMAGE_REL_BASED_IA64_IMM64', 9), ('IMAGE_REL_BASED_DIR64', 10), ('IMAGE_REL_BASED_HIGH3ADJ', 11)] resource_type = [('RT_CURSOR', 1), ('RT_BITMAP', 2), ('RT_ICON', 3), ('RT_MENU', 4), ('RT_DIALOG', 5), ('RT_STRING', 6), ('RT_FONTDIR', 7), ('RT_FONT', 8), ('RT_ACCELERATOR', 9), ('RT_RCDATA', 10), ('RT_MESSAGETABLE', 11), ('RT_GROUP_CURSOR', 12), ('RT_GROUP_ICON', 14), ('RT_VERSION', 16), ('RT_DLGINCLUDE', 17), ('RT_PLUGPLAY', 19), ('RT_VXD', 20), ('RT_ANICURSOR', 21), ('RT_ANIICON', 22), ('RT_HTML', 23), ...] section_characteristics = [('IMAGE_SCN_CNT_CODE', 32), ('IMAGE_SCN_CNT_INITIALIZED_DATA', 64), ('IMAGE_SCN_CNT_UNINITIALIZED_DATA', 128), ('IMAGE_SCN_LNK_OTHER', 256), ('IMAGE_SCN_LNK_INFO', 512), ('IMAGE_SCN_LNK_REMOVE', 2048), ('IMAGE_SCN_LNK_COMDAT', 4096), ('IMAGE_SCN_MEM_FARDATA', 32768), ('IMAGE_SCN_MEM_PURGEABLE', 131072), ('IMAGE_SCN_MEM_16BIT', 131072), ('IMAGE_SCN_MEM_LOCKED', 262144), ('IMAGE_SCN_MEM_PRELOAD', 524288), ('IMAGE_SCN_ALIGN_1BYTES', 1048576), ('IMAGE_SCN_ALIGN_2BYTES', 2097152), ('IMAGE_SCN_ALIGN_4BYTES', 3145728), ('IMAGE_SCN_ALIGN_8BYTES', 4194304), ('IMAGE_SCN_ALIGN_16BYTES', 5242880), ('IMAGE_SCN_ALIGN_32BYTES', 6291456), ('IMAGE_SCN_ALIGN_64BYTES', 7340032), ('IMAGE_SCN_ALIGN_128BYTES', 8388608), ...] sublang = [('SUBLANG_NEUTRAL', 0), ('SUBLANG_DEFAULT', 1), ('SUBLANG_SYS_DEFAULT', 2), ('SUBLANG_ARABIC_SAUDI_ARABIA', 1), ('SUBLANG_ARABIC_IRAQ', 2), ('SUBLANG_ARABIC_EGYPT', 3), ('SUBLANG_ARABIC_LIBYA', 4), ('SUBLANG_ARABIC_ALGERIA', 5), ('SUBLANG_ARABIC_MOROCCO', 6), ('SUBLANG_ARABIC_TUNISIA', 7), ('SUBLANG_ARABIC_OMAN', 8), ('SUBLANG_ARABIC_YEMEN', 9), ('SUBLANG_ARABIC_SYRIA', 10), ('SUBLANG_ARABIC_JORDAN', 11), ('SUBLANG_ARABIC_LEBANON', 12), ('SUBLANG_ARABIC_KUWAIT', 13), ('SUBLANG_ARABIC_UAE', 14), ('SUBLANG_ARABIC_BAHRAIN', 15), ('SUBLANG_ARABIC_QATAR', 16), ('SUBLANG_AZERI_LATIN', 1), ...] subsystem_types = [('IMAGE_SUBSYSTEM_UNKNOWN', 0), ('IMAGE_SUBSYSTEM_NATIVE', 1), ('IMAGE_SUBSYSTEM_WINDOWS_GUI', 2), ('IMAGE_SUBSYSTEM_WINDOWS_CUI', 3), ('IMAGE_SUBSYSTEM_OS2_CUI', 5), ('IMAGE_SUBSYSTEM_POSIX_CUI', 7), ('IMAGE_SUBSYSTEM_XBOX', 14)] | ||
| Author | ||
| Ero Carrera | ||