home *** CD-ROM | disk | FTP | other *** search
- ;
- ; Image Format - Adopted from winnt.h
- ; TASM assembly conversion by NetWalker
-
- IMAGE_DOS_SIGNATURE EQU 05A4Dh ; MZ
- IMAGE_OS2_SIGNATURE EQU 0454Eh ; NE
- IMAGE_OS2_SIGNATURE_LE EQU 0454Ch ; LE
- IMAGE_VXD_SIGNATURE EQU 0454Ch ; LE
- IMAGE_NT_SIGNATURE EQU 000004550h ; PE00
-
- IMAGE_SIZEOF_FILE_HEADER EQU 20
- IMAGE_FILE_RELOCS_STRIPPED EQU 00001h ; Relocation info stripped from file.
- IMAGE_FILE_EXECUTABLE_IMAGE EQU 00002h ; File is executable (i.e. no unresolved externel references).
- IMAGE_FILE_LINE_NUMS_STRIPPED EQU 00004h ; Line nunbers stripped from file.
- IMAGE_FILE_LOCAL_SYMS_STRIPPED EQU 00008h ; Local symbols stripped from file.
- IMAGE_FILE_AGGRESIVE_WS_TRIM EQU 00010h ; Agressively trim working set
- IMAGE_FILE_BYTES_REVERSED_LO EQU 00080h ; Bytes of machine word are reversed.
- IMAGE_FILE_32BIT_MACHINE EQU 00100h ; 32 bit word machine.
- IMAGE_FILE_DEBUG_STRIPPED EQU 00200h ; Debugging info stripped from file in .DBG file
- IMAGE_FILE_REMOVABLE_RUN_FROM_SW EQU 00400h ; If Image is on removable media, copy and run from the swap file.
- IMAGE_FILE_NET_RUN_FROM_SWAP EQU 00800h ; If Image is on Net, copy and run from the swap file.
- IMAGE_FILE_SYSTEM EQU 01000h ; System File.
- IMAGE_FILE_DLL EQU 02000h ; File is a DLL.
- IMAGE_FILE_UP_SYSTEM_ONLY EQU 04000h ; File should only be run on a UP machine
- IMAGE_FILE_BYTES_REVERSED_HI EQU 08000h ; Bytes of machine word are reversed.
- IMAGE_FILE_MACHINE_UNKNOWN EQU 0
- IMAGE_FILE_MACHINE_I386 EQU 014ch ; Intel 386.
- IMAGE_FILE_MACHINE_R3000 EQU 0162h ; MIPS little-endian, 0x160 big-endian
- IMAGE_FILE_MACHINE_R4000 EQU 0166h ; MIPS little-endian
- IMAGE_FILE_MACHINE_R10000 EQU 0168h ; MIPS little-endian
- IMAGE_FILE_MACHINE_ALPHA EQU 0184h ; Alpha_AXP
- IMAGE_FILE_MACHINE_POWERPC EQU 01F0h ; IBM PowerPC Little-Endian
-
- ;
- ; Directory format.
- ;
-
- IMAGE_DATA_DIRECTORY STRUC
- VirtualAddress DD ?
- Size DD ?
- IMAGE_DATA_DIRECTORY ENDS
-
- IMAGE_NUMBEROF_DIRECTORY_ENTRIES EQU 16
-
-
- ;*****************************************************
- ;**** Image NT Header ****
- ;*****************************************************
-
-
- IMAGE_NT_HEADERS STRUC
-
- ;-----------------PE Signature
- Signature DD ? ; 4
- ;-----------------PE File Header
- Machine DW ? ; 6
- NumberOfSections DW ? ; 8
- TimeDateStamp DD ? ; 12
- PointerToSymbolTable DD ? ; 16
- NumberOfSymbols DD ? ; 20
- SizeOfOptionalHeader DW ? ; 22
- Characteristics DW ? ; 24
- ;-----------------Optional header - Standard fields.
- Magic DW ?
- MajorLinkerVersion DB ?
- MinorLinkerVersion DB ?
- SizeOfCode DD ?
- SizeOfInitializedData DD ?
- SizeOfUninitializedData DD ?
- AddressOfEntryPoint DD ?
- BaseOfCode DD ?
- BaseOfData DD ?
- ;-----------------Optional header - NT additional fields.
- ImageBase DD ?
- SectionAlignment DD ?
- FileAlignment DD ?
- MajorOperatingSystemVersion DW ?
- MinorOperatingSystemVersion DW ?
- MajorImageVersion DW ?
- MinorImageVersion DW ?
- MajorSubsystemVersion DW ?
- MinorSubsystemVersion DW ?
- Win32VersionValue DD ?
- SizeOfImage DD ?
- SizeOfHeaders DD ?
- CheckSum DD ?
- Subsystem DW ?
- DllCharacteristics DW ?
- SizeOfStackReserve DD ?
- SizeOfStackCommit DD ?
- SizeOfHeapReserve DD ?
- SizeOfHeapCommit DD ?
- LoaderFlags DD ?
- NumberOfRvaAndSizes DD ?
- DataDirectory IMAGE_DATA_DIRECTORY 16 DUP ( <> )
- IMAGE_NT_HEADERS ENDS
-
- ;
- ; Subsystem Values
- ;
-
- IMAGE_SUBSYSTEM_UNKNOWN EQU 0 ; Unknown subsystem.
- IMAGE_SUBSYSTEM_NATIVE EQU 1 ; Image doesn't require a subsystem.
- IMAGE_SUBSYSTEM_WINDOWS_GUI EQU 2 ; Image runs in the Windows GUI subsystem.
- IMAGE_SUBSYSTEM_WINDOWS_CUI EQU 3 ; Image runs in the Windows character subsystem.
- IMAGE_SUBSYSTEM_OS2_CUI EQU 5 ; image runs in the OS/2 character subsystem.
- IMAGE_SUBSYSTEM_POSIX_CUI EQU 7 ; image run in the Posix character subsystem.
- IMAGE_SUBSYSTEM_RESERVED8 EQU 8 ; image run in the 8 subsystem.
-
- ;
- ; Directory Entries
- ;
-
- IMAGE_DIRECTORY_ENTRY_EXPORT EQU 0 ; Export Directory
- IMAGE_DIRECTORY_ENTRY_IMPORT EQU 1 ; Import Directory
- IMAGE_DIRECTORY_ENTRY_RESOURCE EQU 2 ; Resource Directory
- IMAGE_DIRECTORY_ENTRY_EXCEPTION EQU 3 ; Exception Directory
- IMAGE_DIRECTORY_ENTRY_SECURITY EQU 4 ; Security Directory
- IMAGE_DIRECTORY_ENTRY_BASERELOC EQU 5 ; Base Relocation Table
- IMAGE_DIRECTORY_ENTRY_DEBUG EQU 6 ; Debug Directory
- IMAGE_DIRECTORY_ENTRY_COPYRIGHT EQU 7 ; Description String
- IMAGE_DIRECTORY_ENTRY_GLOBALPTR EQU 8 ; Machine Value (MIPS GP)
- IMAGE_DIRECTORY_ENTRY_TLS EQU 9 ; TLS Directory
- IMAGE_DIRECTORY_ENTRY_LOAD_CONFI EQU 10 ; Load Configuration Directory
- IMAGE_DIRECTORY_ENTRY_BOUND_IMPO EQU 11 ; Bound Import Directory in headers
- IMAGE_DIRECTORY_ENTRY_IAT EQU 12 ; Import Address Table
-
- ;*****************************************************
- ;**** Image Section Entry Format ****
- ;*****************************************************
-
- IMAGE_SIZEOF_SHORT_NAME EQU 8
-
- IMAGE_SECTION_HEADER STRUC
- Name DB 8 DUP ( ? )
- SVirtualSize DD ?
- SVirtualAddress DD ? ; "S" included to diferentiate from NT_IMAGE_HEADER field
- SizeOfRawData DD ?
- PointerToRawData DD ?
- PointerToRelocations DD ?
- PointerToLinenumbers DD ?
- NumberOfRelocations DW ?
- NumberOfLinenumbers DW ?
- SFlags DD ? ; "S" included to diferentiate from NT_IMAGE_HEADER field
- IMAGE_SECTION_HEADER ENDS
-
- IMAGE_SIZEOF_SECTION_HEADER EQU 40
-
- ;
- ; Section characteristics.
- ;
- ; IMAGE_SCN_TYPE_REG 0x00000000 ; Reserved.
- ; IMAGE_SCN_TYPE_DSECT 0x00000001 ; Reserved.
- ; IMAGE_SCN_TYPE_NOLOAD 0x00000002 ; Reserved.
- ; IMAGE_SCN_TYPE_GROUP 0x00000004 ; Reserved.
- IMAGE_SCN_TYPE_NO_PAD EQU 000000008h ; Reserved.
- ; IMAGE_SCN_TYPE_COPY 0x00000010 ; Reserved.
- IMAGE_SCN_CNT_CODE EQU 000000020h ; Section contains code.
- IMAGE_SCN_CNT_INITIALIZED_DATA EQU 000000040h ; Section contains initialized data.
- IMAGE_SCN_CNT_UNINITIALIZED_DATA EQU 000000080h ; Section contains uninitialized data.
- IMAGE_SCN_LNK_OTHER EQU 000000100h ; Reserved.
- IMAGE_SCN_LNK_INFO EQU 000000200h ; Section contains comments or some other type of information.
- ; IMAGE_SCN_TYPE_OVER 0x00000400 ; Reserved.
- IMAGE_SCN_LNK_REMOVE EQU 000000800h ; Section contents will not become part of image.
- IMAGE_SCN_LNK_COMDAT EQU 000001000h ; Section contents comdat.
- ; 0x00002000 ; Reserved.
- ; IMAGE_SCN_MEM_PROTECTED - Obsolete 0x00004000
- IMAGE_SCN_MEM_FARDATA EQU 000008000h
- ; IMAGE_SCN_MEM_SYSHEAP - Obsolete 0x00010000
- IMAGE_SCN_MEM_PURGEABLE EQU 000020000h
- IMAGE_SCN_MEM_16BIT EQU 000020000h
- IMAGE_SCN_MEM_LOCKED EQU 000040000h
- IMAGE_SCN_MEM_PRELOAD EQU 000080000h
- IMAGE_SCN_ALIGN_1BYTES EQU 000100000h
- IMAGE_SCN_ALIGN_2BYTES EQU 000200000h
- IMAGE_SCN_ALIGN_4BYTES EQU 000300000h
- IMAGE_SCN_ALIGN_8BYTES EQU 000400000h
- IMAGE_SCN_ALIGN_16BYTES EQU 000500000h ; Default alignment if no others are specified.
- IMAGE_SCN_ALIGN_32BYTES EQU 000600000h
- IMAGE_SCN_ALIGN_64BYTES EQU 000700000h
- ; Unused 0x00800000
- IMAGE_SCN_LNK_NRELOC_OVFL EQU 001000000h ; Section contains extended relocations.
- IMAGE_SCN_MEM_DISCARDABLE EQU 002000000h ; Section can be discarded.
- IMAGE_SCN_MEM_NOT_CACHED EQU 004000000h ; Section is not cachable.
- IMAGE_SCN_MEM_NOT_PAGED EQU 008000000h ; Section is not pageable.
- IMAGE_SCN_MEM_SHARED EQU 010000000h ; Section is shareable.
- IMAGE_SCN_MEM_EXECUTE EQU 020000000h ; Section is executable.
- IMAGE_SCN_MEM_READ EQU 040000000h ; Section is readable.
- IMAGE_SCN_MEM_WRITE EQU 080000000h ; Section is writeable.
-
-