home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Tools / ApiHooks 3.0 / NtStruc.inc < prev    next >
Encoding:
Text File  |  2000-06-19  |  10.2 KB  |  255 lines

  1. ;-----------------------------------------
  2.      CLIENT_ID         STRUCT     ;NTDDK
  3.       UniqueProcess    DWORD ?
  4.       UniqueThread     DWORD ?
  5.      CLIENT_ID         ENDS
  6. ;-----------------------------------------
  7.      ProcessBasicInformation  = 0
  8.  
  9.      PROCESS_BASIC_INFORMATION STRUCT  ;NTDDK
  10.       ExitStatus       DWORD ?
  11.       PebBaseAddress   DWORD ?
  12.       AffinityMask     DWORD ?
  13.       BasePriority     DWORD ?
  14.       UniqueProcessId  DWORD ?
  15.       InheritedFromUniqueProcessId DWORD ?
  16.      PROCESS_BASIC_INFORMATION ENDS
  17. ;-----------------------------------------
  18.      ThreadBasicInformation  = 0
  19.  
  20.      THREAD_BASIC_INFORMATION STRUCT    ;EliCZ
  21.       ExitStatus       DWORD ?
  22.       TebBaseAddress   DWORD ?
  23.       ClientId         CLIENT_ID <>
  24.       AffinityMask     DWORD ?
  25.       BasePriority     DWORD ?
  26.       DynamicPriority  DWORD ?
  27.      THREAD_BASIC_INFORMATION ENDS
  28. ;-----------------------------------------
  29.      LPWSTR   TYPEDEF  DWORD
  30.  
  31.      UNICODE_STRING    STRUCT          ;NTDDK
  32.       Length_          USHORT ?
  33.       MaximumLength    USHORT ?
  34.       Buffer           LPWSTR ?
  35.      UNICODE_STRING    ENDS
  36. ;-----------------------------------------
  37.  ;usually: ModEntry0 + 8 == ModEntry2 and ModEntry2 + 8 == DllEntry
  38.  ;         ModEntry1 + 8 == ModEntry3 and ModEntry3 + 8 == ModEntry4
  39.  
  40.      PROCESS_PARAMETERS STRUCT         ;EliCZ
  41.       cbsize            DWORD ?  ;00 == 24H
  42.       Unknown4          DWORD ?  ;04
  43.       Unknown8          DWORD ?  ;08
  44.       pFirstModEntry0   DWORD ?  ;0C
  45.       pFirstModEntry1   DWORD ?  ;10
  46.       pFirstModEntry2   DWORD ?  ;14
  47.       pFirstModEntry3   DWORD ?  ;18
  48.       pFirstDllEntry    DWORD ?  ;1C
  49.       pFirstModEntry4   DWORD ?  ;20
  50.      PROCESS_PARAMETERS ENDS
  51. ;-----------------------------------------
  52.      PEB_MODULE_ENTRY0 STRUCT          ;EliCZ
  53.       pNextModEntry0   DWORD ?  ;00
  54.       pNextModEntry1   DWORD ?  ;04
  55.       pNextModEntry2   DWORD ?  ;08
  56.       pNextModEntry3   DWORD ?  ;0C
  57.       pNextDllEntry    DWORD ?  ;10
  58.       pNextModEntry4   DWORD ?  ;14
  59.       ImageBase        DWORD ?  ;18
  60.       ImageEntry       DWORD ?  ;1C
  61.       ImageSize        DWORD ?  ;20
  62.       ModuleFileName   UNICODE_STRING <>  ;24
  63.       ModuleBaseName   UNICODE_STRING <>  ;2C
  64.       dwFlags          DWORD ?  ;34
  65.       RefCount          WORD ?  ;38
  66.       TlsCallbacks      WORD ?  ;3A
  67.       pTIBarea0        DWORD ?  ;3C
  68.       pTIBarea1        DWORD ?  ;40
  69.       ImageTimeStamp   DWORD ?  ;44
  70.      PEB_MODULE_ENTRY0 ENDS
  71. ;-----------------------------------------
  72.      PEB_DLL_ENTRY     STRUCT          ;EliCZ
  73.       pNextDllEntry    DWORD ?  ;00
  74.       pNextModEntry4   DWORD ?  ;04
  75.       ImageBase        DWORD ?  ;08
  76.       ImageEntry       DWORD ?  ;0C
  77.       ImageSize        DWORD ?  ;10
  78.       ModuleFileName   UNICODE_STRING <>  ;14
  79.       ModuleBaseName   UNICODE_STRING <>  ;1C
  80.       dwFlags          DWORD ?  ;24
  81.       RefCount          WORD ?  ;28
  82.       TlsCallbacks      WORD ?  ;2A
  83.       pTIBarea0        DWORD ?  ;3C
  84.       pTIBarea1        DWORD ?  ;40
  85.       ImageTimeStamp   DWORD ?  ;34
  86.      PEB_DLL_ENTRY     ENDS
  87. ;-----------------------------------------
  88.      ENVIRONMENT_INFORMATION STRUCT      ;EliCZ
  89.       cbsize            DWORD ?  ;00 == 1000H
  90.       Unknown04         DWORD ?  ;04
  91.       Unknown08         DWORD ?  ;08
  92.       Unknown0C         DWORD ?  ;0C
  93.       Unknown10         DWORD ?  ;10
  94.       Unknown14         DWORD ?  ;14
  95.       Unknown18         DWORD ?  ;18
  96.       Unknown1C         DWORD ?  ;1C
  97.       Unknown20         DWORD ?  ;20
  98.       CurrentDirectory  UNICODE_STRING <>  ;24
  99.       Unknown2C         DWORD ?  ;2C   == 18H
  100.       PATHvariable      UNICODE_STRING <>  ;30
  101.       ExeFileName       UNICODE_STRING <>  ;38
  102.       CommandLine       UNICODE_STRING <>  ;40
  103.       Unknown48         DWORD ?  ;48
  104.       Unknown4C         DWORD ?  ;4C
  105.       Unknown50         DWORD ?  ;50
  106.       Unknown54         DWORD ?  ;54
  107.       Unknown58         DWORD ?  ;58
  108.       Unknown5C         DWORD ?  ;5C
  109.       Unknown60         DWORD ?  ;60
  110.       Unknown64         DWORD ?  ;64
  111.       Unknown68         DWORD ?  ;68
  112.       Unknown6C         DWORD ?  ;6C
  113.       CommandLine2      UNICODE_STRING <>  ;70
  114.       WinStation        UNICODE_STRING <>  ;78
  115.       Unknown80         UNICODE_STRING <>  ;80
  116.       ;etc...
  117.      ENVIRONMENT_INFORMATION ENDS
  118. ;-----------------------------------------
  119.      OBJECT_ATTRIBUTES STRUCT          ;NTDDK
  120.       Length_          DWORD ?
  121.       RootDirectory    DWORD ?
  122.       ObjectName       DWORD ?
  123.       Attributes       DWORD ?
  124.       SecurityDescriptor DWORD ?
  125.       SecurityQualityOfService DWORD ?
  126.      OBJECT_ATTRIBUTES ENDS
  127. ;-----------------------------------------
  128.      SystemProcessInformation = 5
  129.                                       ;EliCZ
  130.      THREAD_INFO_OFFSET    EQU 024H
  131.      THREAD_INFO_SIZE      EQU 040H
  132.      NT4_PROCESS_INFO_SIZE EQU 088H
  133.      NT5_PROCESS_INFO_SIZE EQU 0B8H
  134.  
  135.      SYSTEM_THREAD_INFORMATION STRUCT  ;size THREAD_INFO_SIZE
  136.       DWORD  08H DUP (?) ;... fill in threads times, etc...
  137.       ClientId        CLIENT_ID <>
  138.       DWORD  06H DUP (?) ;... fill in threads times, etc...
  139.      SYSTEM_THREAD_INFORMATION ENDS
  140.  
  141.      ;every process info is in block
  142.      ;Unfortunately I lost my notes on missing structure members (context switches,
  143.      ;faults, starting addresses, user and kernel time, working set size,number of handles..)
  144.  
  145.      NT4_SYSTEM_PROCESS_INFORMATION STRUCT ;undoc by me
  146.       SizeOfBlock      DWORD ?           ;00 NULL for info end
  147.       ThreadCount      DWORD ?           ;04 number of threads in this block
  148.       DWORD 0CH DUP (?)                  ;08 ... fill process times, etc...
  149.       ProcessName      UNICODE_STRING <> ;38
  150.       Priority         DWORD ?           ;40
  151.       ProcessId        DWORD ?           ;44
  152.       ParentProcessId  DWORD ?           ;48
  153.       DWORD 0FH DUP (?)                  ;4C ... fill in NT4 process times, page faults, etc...
  154.       ;follows array of SYSTEM_THREAD_INFORMATIONs
  155.       ThreadInformation SYSTEM_THREAD_INFORMATION <> ;88
  156.      NT4_SYSTEM_PROCESS_INFORMATION ENDS
  157.  
  158.      NT5_SYSTEM_PROCESS_INFORMATION STRUCT ;undoc by me
  159.       SizeOfBlock      DWORD ?           ;00 NULL for info end
  160.       ThreadCount      DWORD ?           ;04 number of threads in this block
  161.       DWORD 0CH DUP (?)                  ;08 ... fill process times, etc...
  162.       ProcessName      UNICODE_STRING <> ;38
  163.       Priority         DWORD ?           ;40
  164.       ProcessId        DWORD ?           ;44
  165.       ParentProcessId  DWORD ?           ;48
  166.       DWORD 1BH DUP (?)                  ;4C ... fill in W2K process times, page faults, etc...
  167.       ;follows array of SYSTEM_THREAD_INFORMATIONs
  168.       ThreadInformation SYSTEM_THREAD_INFORMATION <> ;B8
  169.      NT5_SYSTEM_PROCESS_INFORMATION ENDS
  170.  
  171.    IFNDEF NT4
  172.      SYSTEM_PROCESS_INFORMATION TEXTEQU <NT5_SYSTEM_PROCESS_INFORMATION>
  173.    ENDIF
  174. ;-----------------------------------------
  175.      PEB              STRUCT           ;EliCZ
  176.       Unknown00       DWORD ?  ;00  == 0
  177.       Unknown04       DWORD ?  ;04  == -1
  178.       MainImageBase   DWORD ?  ;08
  179.       pProcParameters DWORD ?  ;0C  == *PROCESS_PARAMETERS
  180.       Environment     DWORD ?  ;10  == *PENVIRONMENT_INFORMATION
  181.       Unknown14       DWORD ?  ;14  == 0
  182.       ProgramHeap01   DWORD ?  ;18
  183.       LockingContext  DWORD ?  ;1C  == FastPebLock
  184.       LockRoutine     DWORD ?  ;20  == RtlEnterCriticalSection
  185.       UnlockRoutine   DWORD ?  ;24  == RtlLeaveCriticalSection
  186.       Unknown28       DWORD ?  ;28  == 1
  187.       Unknown2C       DWORD ?  ;2C  == apfnDispatch
  188.       Unknown30       DWORD ?  ;30  == 0
  189.       Unknown34       DWORD ?  ;34  == 0
  190.       Unknown38       DWORD ?  ;38  == 0
  191.       Unknown3C       DWORD ?  ;3C  == 0
  192.       Unknown40       DWORD ?  ;40  == TlsBitMap
  193.       Unknown44       DWORD ?  ;44  == 3FH
  194.       Unknown48       DWORD ?  ;48  == 0
  195.       ProgramHeap02   DWORD ?  ;4C
  196.       ProgramHeap02a  DWORD ?  ;50
  197.       InProgramHeap02 DWORD ?  ;54
  198.       AnsiCodePage0   DWORD ?  ;58
  199.       AnsiCodePage1   DWORD ?  ;5C
  200.       AnsiCodePage2   DWORD ?  ;60
  201.       Unknown64       DWORD ?  ;64  == 1
  202.       Unknown68       DWORD ?  ;68  == 0
  203.       Unknown6C       DWORD ?  ;6C  == 0
  204.       Unknown70       DWORD ?  ;70  == 0
  205.       Unknown74       DWORD ?  ;74  == 0
  206.       Unknown78       DWORD ?  ;78  == 0
  207.       Unknown7C       DWORD ?  ;7C  == 0
  208.       Unknown80       DWORD ?  ;80  == 10000H
  209.       Unknown84       DWORD ?  ;84  == 1000H
  210.       Unknown88       DWORD ?  ;88
  211.       Unknown8C       DWORD ?  ;8C  == 10H
  212.       Unknown90       DWORD ?  ;90  == RtlpProcessHeapsListBuffer
  213.       Unknown94       DWORD ?  ;94
  214.       Unknown98       DWORD ?  ;98  == 0
  215.       Unknown9C       DWORD ?  ;9C  == 14H
  216.       UnknownA0       DWORD ?  ;A0  == LoaderLock
  217.       UnknownA4       DWORD ?  ;A4
  218.       UnknownA8       DWORD ?  ;A8
  219.       OSBuild         DWORD ?  ;AC  == 2195
  220.       UnknownB0       DWORD ?  ;B0
  221.       UnknownB4       DWORD ?  ;B4
  222.       UnknownB8       DWORD ?  ;B8
  223.       UnknownBC       DWORD ?  ;BC
  224.      PEB              ENDS
  225. ;-----------------------------------------
  226.      TEB              STRUCT           ;NTDDK + EliCZ
  227.       ExceptionList   DWORD ?            ;00
  228.       StackBase       DWORD ?            ;04
  229.       StackLimit      DWORD ?            ;08
  230.       SubSystemTib    DWORD ?            ;0C
  231.       UNION
  232.        FiberData      DWORD ?            ;10
  233.        Version        DWORD ?            ;10
  234.       ENDS
  235.       ArbitraryUserPointer DWORD ?       ;14
  236.       Self            DWORD ?            ;18
  237.       Unknown1C       DWORD ?            ;1C
  238.       ClientId        CLIENT_ID <>       ;20
  239.       Unknown28       DWORD ?            ;28
  240.       pTlsArray       DWORD ?            ;2C
  241.       pPEB            DWORD ?            ;30
  242.       Unknown34       DWORD 024H DUP (?) ;34
  243.       Locale          DWORD ?            ;C4
  244.       UnknownC8       DWORD 2CCH DUP (?) ;C8
  245.       WinStation      UNICODE_STRING <>  ;BF8
  246.       UnknownC00      DWORD 083H DUP (?) ;C00
  247.       ThreadStack     DWORD ?            ;E0C
  248.       UnknownE10      DWORD 07CH DUP (?) ;E10
  249.      TEB              ENDS
  250. ;-----------------------------------------
  251.    CurrentThread      EQU -2          ;in both 9x and NT
  252.  
  253.    ABOVE2GB           EQU 08000000H   ;for Windows 9x VirtualAlloc. (c) Matt Pietrek
  254.  
  255.