MAX_PATH                        =       260

DLL_PROCESS_ATTACH              =       1
DLL_THREAD_ATTACH               =       2

FILE_ATTRIBUTE_DIRECTORY        =       4 //log2(0x00000010)

GMEM_FIXED                      =       0x0000

OPEN_EXISTING                   =       3

GENERIC_WRITE                   =       0x40000000
GENERIC_READ                    =       0x80000000

IMAGE_FILE_MACHINE_IA64         =       0x200

IMAGE_FILE_RELOCS_STRIPPED      =       0x0000 //log2(0x0001)
IMAGE_FILE_EXECUTABLE_IMAGE     =       0x0002
IMAGE_FILE_SYSTEM               =       0x1000
IMAGE_FILE_DLL                  =       0x2000
IMAGE_FILE_UP_SYSTEM_ONLY       =       0x4000

IMAGE_SUBSYSTEM_WINDOWS_GUI     =       2
IMAGE_SUBSYSTEM_WINDOWS_CUI     =       3

IMAGE_DLLCHARACTERISTICS_WDM_DRIVER =   0x0d //log2(0x2000)

IMAGE_SCN_MEM_EXECUTE           =       0x20000000
IMAGE_SCN_MEM_WRITE             =       7 //log2(0x80)

RANDPADMIN                      =       4096
RANDPADMAX                      =       2048 //RANDPADMIN is added to this

SECTION_MAP_WRITE               =       0x0002

FILE_MAP_WRITE                  =       SECTION_MAP_WRITE

PAGE_READWRITE                  =       04

EXCEPTION_CONTINUE_EXECUTION    =       -1

ContextRecord_StIIP             =       0xa18

//tlsstruc        struct
//        tlsrawbeg       dq      ?               ;00
//        tlsrawend       dq      ?       ;08
//        tlsindex        dq      ?       ;10
//        tlsfuncptr      dq      ?       ;18
//        tlsfiller       dd      ?       ;20
//        tlsflags        dd      ?       ;24
//        tlsfunc     dq      3 dup (?)   ;28
//        tlsfuncind      dq      ?       ;40
//        tlsfuncgp       dq      ?       ;48
//tlsstruc        ends
tlsrawbeg = 0
tlsindex = 0x10
tlsfuncptr = 0x18
tlsflags = 0x24
tlsfunc = 0x28
tlsfuncind = 0x40

//FILETIME        struct
//    dwLowDateTime   dd      ?
//    dwHighDateTime  dd      ?
//FILETIME        ends

//WIN32_FIND_DATA struct
//    dwFileAttributes        dd              ?
//    ftCreationTime          FILETIME        <?>
//    ftLastAccessTime        FILETIME        <?>
//    ftLastWriteTime         FILETIME        <?>
//    dwFileSizeHigh          dd              ?
//    dwFileSizeLow           dd              ?
//    dwReserved0             dd              ?
//    dwReserved1             dd              ?
//    cFileName               dw              260 dup (?)
//    cAlternateFileName      dw              14 dup (?)
//WIN32_FIND_DATA ends
dwFileAttributes = 0
ftCreationTime = 4
ftLastAccessTime = 0x0c
ftLastWriteTime = 0x14
dwFileSizeLow = 0x20
cFileName = 0x2c

//findlist        struct
//    findprev        dq                      ?
//    findhand        dq                      ?
//    finddata        WIN32_FIND_DATA         <?>
//findlist        ends
size_findlist = 0x260
findhand = 8
finddata = 0x10

//coffhdr         struct
//    pemachine       dw      ?               ;04
//    pesectcount     dw      ?               ;06
//    petimedate      dd      ?               ;08
//    pesymbrva       dd      ?               ;0C
//    pesymbcount     dd      ?               ;10
//    peopthdrsize    dw      ?               ;14
//    peflags         dw      ?               ;16
//coffhdr         ends
pemachine = 4
pesectcount = 6
peflags = 0x16
peopthdrsize = 0x14

//pedir           struct
//    dirrva          dd      ?
//    dirsize         dd      ?
//pedir           ends

//pehdr           struct
//    pesig           dd      ?               ;000
//    pecoff          coffhdr <?>
//    pemagic         dw      ?               ;018
//    pemajorlink     db      ?               ;01A
//    peminorlink     db      ?               ;01B
//    pecodesize      dd      ?               ;01C
//    peidatasize     dd      ?               ;020
//    peudatasize     dd      ?               ;024
//    peentrypoint    dd      ?               ;028
//    pecodebase      dd      ?               ;02C
//    peimagebase     dq      ?               ;030
//    pesectalign     dd      ?               ;038
//    pefilealign     dd      ?               ;03C
//    pemajoros       dw      ?               ;040
//    peminoros       dw      ?               ;042
//    pemajorimage    dw      ?               ;044
//    peminorimage    dw      ?               ;046
//    pemajorsubsys   dw      ?               ;048
//    peminorsubsys   dw      ?               ;04A
//    pereserved      dd      ?               ;04C
//    peimagesize     dd      ?               ;050
//    pehdrsize       dd      ?               ;054
//    pechksum        dd      ?               ;058
//    pesubsys        dw      ?               ;05C
//    pedllflags      dw      ?               ;05E
//    pestackmax      dq      ?               ;060
//    pestacksize     dq      ?               ;068
//    peheapmax       dq      ?               ;070
//    peheapsize      dq      ?               ;078
//    peldrflags      dd      ?               ;080
//    pervacount      dd      ?               ;084
//    peexport        pedir   <?>             ;088
//    peimport        pedir   <?>             ;090
//    persrc          pedir   <?>             ;098
//    peexcpt         pedir   <?>             ;0A0
//    pesecurity      pedir   <?>             ;0A8
//    pereloc         pedir   <?>             ;0B0
//    pedebug         pedir   <?>             ;0B8
//    pearch          pedir   <?>             ;0C0
//    peglobal        pedir   <?>             ;0C8
//    petls           pedir   <?>             ;0D0
//    peconfig        pedir   <?>             ;0D8
//    pebound         pedir   <?>             ;0E0
//    peiat           pedir   <?>             ;0E8
//    pedelay         pedir   <?>             ;0F0
//    pecom           pedir   <?>             ;0F8
//    persrv          pedir   <?>             ;100
//pehdr           ends
peimagebase = 0x30
pesectalign = 0x38
pefilealign = 0x3c
peimagesize = 0x50
pechksum = 0x58
pesubsys = 0x5c
peexport = 0x88
pesecurity = 0xa8
pereloc = 0xb0
peglobal = 0xc8
petls = 0xd0

//peexp           struct
//        expflags        dd      ?       ;00
//        expdatetime     dd      ?       ;04
//        expmajorver     dw      ?       ;08
//        expminorver     dw      ?       ;0A
//        expdllrva       dd      ?       ;0C
//        expordbase      dd      ?       ;10
//        expadrcount     dd      ?       ;14
//        expnamecount    dd      ?       ;18
//        expadrrva       dd      ?       ;1C
//        expnamerva      dd      ?       ;20
//        expordrva       dd      ?       ;24
//peexp           ends

//mzhdr           struct
//    mzsig           dw      ?               ;00
//    mzpagemod       dw      ?               ;02
//    mzpagediv       dw      ?               ;04
//    mzrelocs        dw      ?               ;06
//    mzhdrsize       dw      ?               ;08
//    mzminalloc      dw      ?               ;0A
//    mzmaxalloc      dw      ?               ;0C
//    mzss            dw      ?               ;0E
//    mzsp            dw      ?               ;10
//    mzchksum        dw      ?               ;12
//    mzip            dw      ?               ;14
//    mzcs            dw      ?               ;16
//    mzreloff        dw      ?               ;18
//    mzfiller        db      22h dup (?)     ;1A
//    mzlfanew        dd      ?               ;3C
//mzhdr           ends
mzlfanew = 0x3c

//pesect          struct
//        sectname        db      8 dup (?)   ;00
//        sectvirtsize    dd      ?       ;08
//        sectvirtaddr    dd      ?       ;0C
//        sectrawsize     dd      ?       ;10
//        sectrawaddr     dd      ?       ;14
//        sectreladdr     dd      ?       ;18
//        sectlineaddr    dd      ?       ;1C
//        sectrelcount    dw      ?       ;20
//        sectlinecount   dw      ?       ;22
//        sectflags       dd      ?       ;24
//pesect          ends
sectvirtsize = 8
sectvirtaddr = 0x0c
sectrawaddr = 0x14
sectflags = 0x24
size_pesect = 0x28
