HyperDbg Debugger
|
Access and parse user-mode components of binaries. More...
Go to the source code of this file.
Classes | |
struct | _PEB_LDR_DATA |
PEB LDR Data. More... | |
struct | _RTL_USER_PROCESS_PARAMETERS |
User process params. More... | |
struct | _PEB |
PEB 64-bit. More... | |
struct | _PEB32 |
PEB 32-bit. More... | |
struct | _PEB_LDR_DATA32 |
LDR Data 32-bit. More... | |
struct | _LDR_DATA_TABLE_ENTRY32 |
LDR Data Table 32-bit. More... | |
struct | _LDR_DATA_TABLE_ENTRY |
LDR Data Table 64-bit. More... | |
Typedefs | |
typedef struct _PEB_LDR_DATA | PEB_LDR_DATA |
PEB LDR Data. | |
typedef struct _PEB_LDR_DATA * | PPEB_LDR_DATA |
typedef struct _RTL_USER_PROCESS_PARAMETERS | RTL_USER_PROCESS_PARAMETERS |
User process params. | |
typedef struct _RTL_USER_PROCESS_PARAMETERS * | PRTL_USER_PROCESS_PARAMETERS |
typedef void(__stdcall * | PPS_POST_PROCESS_INIT_ROUTINE) (void) |
Random windows type. | |
typedef struct _PEB | PEB |
PEB 64-bit. | |
typedef struct _PEB * | PPEB |
typedef struct _PEB32 | PEB32 |
PEB 32-bit. | |
typedef struct _PEB32 * | PPEB32 |
typedef struct _PEB_LDR_DATA32 | PEB_LDR_DATA32 |
LDR Data 32-bit. | |
typedef struct _PEB_LDR_DATA32 * | PPEB_LDR_DATA32 |
typedef struct _LDR_DATA_TABLE_ENTRY32 | LDR_DATA_TABLE_ENTRY32 |
LDR Data Table 32-bit. | |
typedef struct _LDR_DATA_TABLE_ENTRY32 * | PLDR_DATA_TABLE_ENTRY32 |
typedef struct _LDR_DATA_TABLE_ENTRY | LDR_DATA_TABLE_ENTRY |
LDR Data Table 64-bit. | |
typedef struct _LDR_DATA_TABLE_ENTRY * | PLDR_DATA_TABLE_ENTRY |
typedef NTSTATUS(* | ZwQueryInformationProcess) (__in HANDLE ProcessHandle, __in PROCESSINFOCLASS ProcessInformationClass, __out_bcount(ProcessInformationLength) PVOID ProcessInformation, __in ULONG ProcessInformationLength, __out_opt PULONG ReturnLength) |
typedef PPEB(NTAPI * | PsGetProcessPeb) (PEPROCESS Process) |
typedef PPEB32(NTAPI * | PsGetProcessWow64Process) (PEPROCESS Process) |
Functions | |
BOOLEAN | UserAccessAllocateAndGetImagePathFromProcessId (HANDLE ProcessId, PUNICODE_STRING ProcessImageName, UINT32 SizeOfImageNameToBeAllocated) |
Get the image path from process Id. | |
BOOLEAN | UserAccessGetLoadedModules (PUSERMODE_LOADED_MODULE_DETAILS ProcessLoadedModuleRequest, UINT32 BufferSize) |
Get details about loaded modules. | |
BOOLEAN | UserAccessIsWow64Process (HANDLE ProcessId, PBOOLEAN Is32Bit) |
Detects whether process is 32-bit or 64-bit. | |
BOOLEAN | UserAccessIsWow64ProcessByEprocess (PEPROCESS SourceProcess, PBOOLEAN Is32Bit) |
Detects whether process is 32-bit or 64-bit by using EPROCESS pointer. | |
BOOLEAN | UserAccessCheckForLoadedModuleDetails (UINT32 CoreId) |
Checks whether the loaded module is available or not. | |
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. | |
Variables | |
ZwQueryInformationProcess | g_ZwQueryInformationProcess |
Address of ZwQueryInformationProcess. | |
PsGetProcessPeb | g_PsGetProcessPeb |
Address of PsGetProcessPeb. | |
PsGetProcessWow64Process | g_PsGetProcessWow64Process |
Address of PsGetProcessWow64Process. | |
Access and parse user-mode components of binaries.
Access to Portable Executables
typedef struct _LDR_DATA_TABLE_ENTRY LDR_DATA_TABLE_ENTRY |
LDR Data Table 64-bit.
typedef struct _LDR_DATA_TABLE_ENTRY32 LDR_DATA_TABLE_ENTRY32 |
LDR Data Table 32-bit.
typedef struct _PEB_LDR_DATA PEB_LDR_DATA |
PEB LDR Data.
typedef struct _PEB_LDR_DATA32 PEB_LDR_DATA32 |
LDR Data 32-bit.
typedef struct _LDR_DATA_TABLE_ENTRY * PLDR_DATA_TABLE_ENTRY |
typedef struct _LDR_DATA_TABLE_ENTRY32 * PLDR_DATA_TABLE_ENTRY32 |
typedef struct _PEB_LDR_DATA * PPEB_LDR_DATA |
typedef struct _PEB_LDR_DATA32 * PPEB_LDR_DATA32 |
typedef void(__stdcall * PPS_POST_PROCESS_INIT_ROUTINE) (void) |
Random windows type.
typedef struct _RTL_USER_PROCESS_PARAMETERS * PRTL_USER_PROCESS_PARAMETERS |
typedef PPEB(NTAPI * PsGetProcessPeb) (PEPROCESS Process) |
typedef PPEB32(NTAPI * PsGetProcessWow64Process) (PEPROCESS Process) |
typedef struct _RTL_USER_PROCESS_PARAMETERS RTL_USER_PROCESS_PARAMETERS |
User process params.
typedef NTSTATUS(* ZwQueryInformationProcess) (__in HANDLE ProcessHandle, __in PROCESSINFOCLASS ProcessInformationClass, __out_bcount(ProcessInformationLength) PVOID ProcessInformation, __in ULONG ProcessInformationLength, __out_opt PULONG ReturnLength) |
BOOLEAN UserAccessAllocateAndGetImagePathFromProcessId | ( | HANDLE | ProcessId, |
PUNICODE_STRING | ProcessImageName, | ||
UINT32 | SizeOfImageNameToBeAllocated ) |
Get the image path from process Id.
This function should be called in vmx non-root for size 512 is enough, if the size is not enough it returns FALSE it's up to the user to deallocate ProcessImageName.Buffer
ProcessId | |
ProcessImageName | |
SizeOfImageNameToBeAllocated |
Checks whether the loaded module is available or not.
CoreId |
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.
This function is safe to be called in vmx non-root
PebAddress | |
Is32Bit | |
BaseAddress | |
Entrypoint |
BOOLEAN UserAccessGetLoadedModules | ( | PUSERMODE_LOADED_MODULE_DETAILS | ProcessLoadedModuleRequest, |
UINT32 | BufferSize ) |
Get details about loaded modules.
This function should be called in vmx non-root
ProcessLoadedModuleRequest | |
BufferSize |
Detects whether process is 32-bit or 64-bit.
This function should be called in vmx non-root
ProcessId | |
Is32Bit |
Detects whether process is 32-bit or 64-bit by using EPROCESS pointer.
This function should be called in vmx non-root
SourceProcess | |
Is32Bit |
PsGetProcessPeb g_PsGetProcessPeb |
Address of PsGetProcessPeb.
PsGetProcessWow64Process g_PsGetProcessWow64Process |
Address of PsGetProcessWow64Process.
ZwQueryInformationProcess g_ZwQueryInformationProcess |
Address of ZwQueryInformationProcess.