HyperDbg Debugger
Loading...
Searching...
No Matches
UserAccess.h
Go to the documentation of this file.
1
12#pragma once
13
15// Structures //
17
31
43
48typedef void(__stdcall * PPS_POST_PROCESS_INIT_ROUTINE)(void); // not exported
49
76
102
116
137
163
165// Definitions //
167
168typedef NTSTATUS (*ZwQueryInformationProcess)(
169 __in HANDLE ProcessHandle,
170 __in PROCESSINFOCLASS ProcessInformationClass,
171 __out_bcount(ProcessInformationLength) PVOID ProcessInformation,
172 __in ULONG ProcessInformationLength,
173 __out_opt PULONG ReturnLength);
174
175typedef PPEB(NTAPI * PsGetProcessPeb)(PEPROCESS Process);
176
177typedef PPEB32(NTAPI * PsGetProcessWow64Process)(PEPROCESS Process);
178
180// Variables //
182
188
194
200
202// Functions //
204
207 PUNICODE_STRING ProcessImageName,
208 UINT32 SizeOfImageNameToBeAllocated);
210UserAccessGetLoadedModules(PUSERMODE_LOADED_MODULE_DETAILS ProcessLoadedModuleRequest, UINT32 BufferSize);
211
213UserAccessIsWow64Process(HANDLE ProcessId, PBOOLEAN Is32Bit);
214
216UserAccessIsWow64ProcessByEprocess(PEPROCESS SourceProcess, PBOOLEAN Is32Bit);
217
220
223 BOOLEAN Is32Bit,
224 PUINT64 BaseAddress,
225 PUINT64 Entrypoint);
unsigned short UINT16
Definition BasicTypes.h:47
UCHAR BOOLEAN
Definition BasicTypes.h:39
unsigned char BYTE
Definition BasicTypes.h:24
unsigned char UCHAR
Definition BasicTypes.h:35
BOOLEAN * PBOOLEAN
Definition BasicTypes.h:40
unsigned __int64 * PUINT64
Definition BasicTypes.h:21
unsigned int UINT32
Definition BasicTypes.h:48
unsigned long ULONG
Definition BasicTypes.h:37
ZwQueryInformationProcess g_ZwQueryInformationProcess
Address of ZwQueryInformationProcess.
Definition UserAccess.h:187
PsGetProcessPeb g_PsGetProcessPeb
Address of PsGetProcessPeb.
Definition UserAccess.h:193
struct _PEB_LDR_DATA32 * PPEB_LDR_DATA32
struct _RTL_USER_PROCESS_PARAMETERS RTL_USER_PROCESS_PARAMETERS
User process params.
PPEB32(NTAPI * PsGetProcessWow64Process)(PEPROCESS Process)
Definition UserAccess.h:177
struct _LDR_DATA_TABLE_ENTRY * PLDR_DATA_TABLE_ENTRY
struct _PEB32 * PPEB32
struct _LDR_DATA_TABLE_ENTRY LDR_DATA_TABLE_ENTRY
LDR Data Table 64-bit.
BOOLEAN UserAccessGetBaseAndEntrypointOfMainModuleIfLoadedInVmxRoot(PPEB PebAddress, BOOLEAN Is32Bit, PUINT64 BaseAddress, PUINT64 Entrypoint)
If the target process's main module is loaded, it fills the Entrypoint and the BaseAddress.
Definition UserAccess.c:245
struct _PEB_LDR_DATA * PPEB_LDR_DATA
BOOLEAN UserAccessGetLoadedModules(PUSERMODE_LOADED_MODULE_DETAILS ProcessLoadedModuleRequest, UINT32 BufferSize)
Get details about loaded modules.
Definition UserAccess.c:779
struct _PEB * PPEB
PsGetProcessWow64Process g_PsGetProcessWow64Process
Address of PsGetProcessWow64Process.
Definition UserAccess.h:199
struct _LDR_DATA_TABLE_ENTRY32 LDR_DATA_TABLE_ENTRY32
LDR Data Table 32-bit.
struct _LDR_DATA_TABLE_ENTRY32 * PLDR_DATA_TABLE_ENTRY32
struct _RTL_USER_PROCESS_PARAMETERS * PRTL_USER_PROCESS_PARAMETERS
struct _PEB_LDR_DATA32 PEB_LDR_DATA32
LDR Data 32-bit.
struct _PEB32 PEB32
PEB 32-bit.
BOOLEAN UserAccessAllocateAndGetImagePathFromProcessId(HANDLE ProcessId, PUNICODE_STRING ProcessImageName, UINT32 SizeOfImageNameToBeAllocated)
Get the image path from process Id.
Definition UserAccess.c:28
struct _PEB PEB
PEB 64-bit.
NTSTATUS(* ZwQueryInformationProcess)(__in HANDLE ProcessHandle, __in PROCESSINFOCLASS ProcessInformationClass, __out_bcount(ProcessInformationLength) PVOID ProcessInformation, __in ULONG ProcessInformationLength, __out_opt PULONG ReturnLength)
Definition UserAccess.h:168
PPEB(NTAPI * PsGetProcessPeb)(PEPROCESS Process)
Definition UserAccess.h:175
BOOLEAN UserAccessCheckForLoadedModuleDetails(UINT32 CoreId)
Checks whether the loaded module is available or not.
Definition UserAccess.c:854
BOOLEAN UserAccessIsWow64ProcessByEprocess(PEPROCESS SourceProcess, PBOOLEAN Is32Bit)
Detects whether process is 32-bit or 64-bit by using EPROCESS pointer.
Definition UserAccess.c:711
void(__stdcall * PPS_POST_PROCESS_INIT_ROUTINE)(void)
Random windows type.
Definition UserAccess.h:48
struct _PEB_LDR_DATA PEB_LDR_DATA
PEB LDR Data.
BOOLEAN UserAccessIsWow64Process(HANDLE ProcessId, PBOOLEAN Is32Bit)
Detects whether process is 32-bit or 64-bit.
Definition UserAccess.c:753
LDR Data Table 32-bit.
Definition UserAccess.h:122
UINT16 LoadCount
Definition UserAccess.h:132
LIST_ENTRY32 HashLinks
Definition UserAccess.h:134
LIST_ENTRY32 InMemoryOrderLinks
Definition UserAccess.h:124
UNICODE_STRING32 FullDllName
Definition UserAccess.h:129
ULONG TimeDateStamp
Definition UserAccess.h:135
ULONG SizeOfImage
Definition UserAccess.h:128
ULONG DllBase
Definition UserAccess.h:126
ULONG Flags
Definition UserAccess.h:131
ULONG EntryPoint
Definition UserAccess.h:127
LIST_ENTRY32 InInitializationOrderLinks
Definition UserAccess.h:125
UINT16 TlsIndex
Definition UserAccess.h:133
UNICODE_STRING32 BaseDllName
Definition UserAccess.h:130
LIST_ENTRY32 InLoadOrderLinks
Definition UserAccess.h:123
LDR Data Table 64-bit.
Definition UserAccess.h:143
LIST_ENTRY InMemoryOrderModuleList
Definition UserAccess.h:145
PVOID EntryPoint
Definition UserAccess.h:148
UNICODE_STRING FullDllName
Definition UserAccess.h:150
ULONG SizeOfImage
Definition UserAccess.h:149
PVOID DllBase
Definition UserAccess.h:147
UINT16 LoadCount
Definition UserAccess.h:153
UINT16 TlsIndex
Definition UserAccess.h:154
ULONG Flags
Definition UserAccess.h:152
LIST_ENTRY InInitializationOrderModuleList
Definition UserAccess.h:146
ULONG TimeDateStamp
Definition UserAccess.h:158
LIST_ENTRY InLoadOrderModuleList
Definition UserAccess.h:144
PVOID SectionPointer
Definition UserAccess.h:156
LIST_ENTRY HashLinks
Definition UserAccess.h:155
UNICODE_STRING BaseDllName
Definition UserAccess.h:151
ULONG CheckSum
Definition UserAccess.h:157
PEB 32-bit.
Definition UserAccess.h:82
ULONG ProcessHeap
Definition UserAccess.h:92
UCHAR BitField
Definition UserAccess.h:86
ULONG Ldr
Definition UserAccess.h:89
UCHAR BeingDebugged
Definition UserAccess.h:85
ULONG SubSystemData
Definition UserAccess.h:91
ULONG AtlThunkSListPtr32
Definition UserAccess.h:99
UCHAR InheritedAddressSpace
Definition UserAccess.h:83
ULONG IFEOKey
Definition UserAccess.h:95
ULONG Mutant
Definition UserAccess.h:87
ULONG AtlThunkSListPtr
Definition UserAccess.h:94
ULONG ApiSetMap
Definition UserAccess.h:100
ULONG ProcessParameters
Definition UserAccess.h:90
ULONG SystemReserved
Definition UserAccess.h:98
UCHAR ReadImageFileExecOptions
Definition UserAccess.h:84
ULONG CrossProcessFlags
Definition UserAccess.h:96
ULONG ImageBaseAddress
Definition UserAccess.h:88
ULONG UserSharedInfoPtr
Definition UserAccess.h:97
ULONG FastPebLock
Definition UserAccess.h:93
LDR Data 32-bit.
Definition UserAccess.h:108
UCHAR Initialized
Definition UserAccess.h:110
ULONG SsHandle
Definition UserAccess.h:111
ULONG Length
Definition UserAccess.h:109
LIST_ENTRY32 InInitializationOrderModuleList
Definition UserAccess.h:114
LIST_ENTRY32 InLoadOrderModuleList
Definition UserAccess.h:112
LIST_ENTRY32 InMemoryOrderModuleList
Definition UserAccess.h:113
PEB LDR Data.
Definition UserAccess.h:23
LIST_ENTRY ModuleListLoadOrder
Definition UserAccess.h:27
LIST_ENTRY ModuleListInitOrder
Definition UserAccess.h:29
PVOID SsHandle
Definition UserAccess.h:26
LIST_ENTRY ModuleListMemoryOrder
Definition UserAccess.h:28
ULONG Length
Definition UserAccess.h:24
BOOLEAN Initialized
Definition UserAccess.h:25
PEB 64-bit.
Definition UserAccess.h:55
ULONG Reserved8
Definition UserAccess.h:67
ULONG Reserved6
Definition UserAccess.h:65
PPEB_LDR_DATA Ldr
Definition UserAccess.h:60
BYTE Reserved11[128]
Definition UserAccess.h:72
BYTE Reserved2[1]
Definition UserAccess.h:58
BYTE BeingDebugged
Definition UserAccess.h:57
ULONG SessionId
Definition UserAccess.h:74
PVOID AtlThunkSListPtr
Definition UserAccess.h:63
PRTL_USER_PROCESS_PARAMETERS ProcessParameters
Definition UserAccess.h:61
PVOID Reserved5
Definition UserAccess.h:64
PVOID Reserved3[2]
Definition UserAccess.h:59
PPS_POST_PROCESS_INIT_ROUTINE PostProcessInitRoutine
Definition UserAccess.h:71
PVOID Reserved9[45]
Definition UserAccess.h:69
BYTE Reserved10[96]
Definition UserAccess.h:70
ULONG AtlThunkSListPtr32
Definition UserAccess.h:68
PVOID Reserved7
Definition UserAccess.h:66
PVOID Reserved12[1]
Definition UserAccess.h:73
PVOID Reserved4[3]
Definition UserAccess.h:62
BYTE Reserved1[2]
Definition UserAccess.h:56
User process params.
Definition UserAccess.h:37
UNICODE_STRING CommandLine
Definition UserAccess.h:41
UNICODE_STRING ImagePathName
Definition UserAccess.h:40
PVOID Reserved2[10]
Definition UserAccess.h:39
BYTE Reserved1[16]
Definition UserAccess.h:38
Definition casting.cpp:25
Definition Symbols.h:47