Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef _PEREAD_
- #define _PEREAD_
- #include <sys/types.h>
- struct IMAGE_DOS_HEADER{
- u_int16_t e_magic;
- u_int16_t e_partpage; // bytes on last page of file
- u_int16_t e_pagecnt; // number of pages
- u_int16_t e_relocnt; // number of relocations
- u_int16_t e_hdrsize; // size of header in paragraphs [128 bit]
- u_int16_t e_minmem; // minimum extra memory needed
- u_int16_t e_maxmem; // maximum extra memory needed
- u_int16_t e_reloss; // initial ss value [stack segment]
- u_int16_t e_exesp; // initial sp value [stack pointer]
- u_int16_t e_chksum; // Checksum vlaue
- u_int16_t e_exeip; // initial IP value [instruction pointer]
- u_int16_t e_Relocs; // initial CS value [code segmant]
- u_int16_t e_tabloff; // offset of the relocation table
- u_int16_t e_overlay; // Overlay number
- u_int16_t e_empty[4]; // reserved words
- u_int16_t e_oem; // OEM id
- u_int16_t e_oeminfo; // OEM info
- u_int16_t e_empty2[10]; // reserved words
- u_int32_t e_lfanew; // Offset to PE header
- };
- struct IMAGE_OPTIONAL_HEADER{
- u_int16_t e_magic; // magic number
- u_int8_t e_mjrlnkr; // Major Linker version
- u_int8_t e_mnrlnkr; // Minor Linker version
- u_int32_t e_codesize; // Size of the code sections combined
- u_int32_t e_datasize; // Size of .data section
- u_int32_t e_udatasize; // Size of uninitialized data
- u_int32_t e_entry; // Address of Entry Point [RVA]
- u_int32_t e_cbase; // Code Base RVA
- u_int32_t e_dbase; // Data Base RVA
- u_int32_t e_imgbase; // Base of the whole image
- u_int32_t e_secalgn; // Section alignment
- u_int32_t e_filalgn; // File alignment
- u_int16_t e_mjrosvr; // Major OS version
- u_int16_t e_mnrosvr; // Minor OS version
- u_int16_t e_mjrimgvr; // Major Image version
- u_int16_t e_mnrimgvr; // Minor Image version
- u_int16_t e_mjrsubvr; // Major subSystem version (NT)
- u_int16_t e_mnrsubvr; // Minor sub System version
- u_int32_t e_reserved;
- u_int32_t e_imgsize; // the size of image
- u_int32_t e_hdrsize; // size of PE header and section table;
- u_int32_t e_chksum; // Checksum
- u_int16_t e_subsystem; // Subsystem for the interface
- u_int16_t e_dllchr; // DLL Characterstics
- u_int32_t e_stkrsv; // size of bytes reserved for the thread stack
- u_int32_t e_stkcmt; // the memory initialy commited for the stack
- u_int32_t e_hprsv; // size of heap reserved memory
- u_int32_t e_hpcmt; // size of heap commited memory
- u_int32_t e_ldflags; // Loader Flags
- u_int32_t e_numrvasz; // Number of entries in DataDirectory
- u_int32_t e_datadir[0x20];
- };
- struct IMAGE_NT_HEADERS{
- u_int32_t e_magic;
- u_int16_t e_machine; // type of machine
- u_int16_t e_numsec; // number of sections
- u_int32_t e_timestamp; // file timestamp
- u_int32_t e_psymtbl; // symbol table pointer
- u_int32_t e_numsym; // number of symbols
- u_int16_t e_opthdrsz; // size of optional header
- u_int16_t e_chr; // file Characterstics
- struct IMAGE_OPTIONAL_HEADER e_opthdr;
- };
- struct IMAGE_SECTION_HEADER{
- char s_name[8]; // Section name in ascii
- u_int32_t s_virtsize; // size of section [No .OBJ files to process..now!]
- u_int32_t s_virtaddr; // the section's RVA
- u_int32_t s_rwdtsize; // Size of raw data which is size of section after alginment
- u_int32_t s_rwdtptr; // pointer to section start on disk
- u_int32_t s_relocptr; // Pointer to relocatios [ we wont need it...now!]
- u_int32_t s_lineptr; // Pointer to Line number...ignore it for now!
- u_int16_t s_relocnum; // Numer of relocations
- u_int16_t s_linenum; // number of line numbers
- u_int32_t s_chr; // Section Characterstics
- };
- #endif
Add Comment
Please, Sign In to add comment