HyperDbg Debugger
Loading...
Searching...
No Matches
symbol-parser.h
Go to the documentation of this file.
1
12#pragma once
13
15// Configs //
17
18#define DoNotShowDetailedResult TRUE
19
21// Structures //
23
37
39// Exports & Imports //
41extern "C" {
42
43//
44// Imports
45//
46__declspec(dllimport) int pdbex_export(int argc, char ** argv, bool is_struct, void * buffer_address);
47__declspec(dllimport) void pdbex_set_logging_method_export(PVOID handler);
48
49//
50// Exports
51//
52__declspec(dllexport) VOID SymSetTextMessageCallback(PVOID handler);
54__declspec(dllexport) UINT32 SymLoadFileSymbol(UINT64 BaseAddress, const char * PdbFileName, const char * CustomModuleName);
56__declspec(dllexport) UINT32 SymUnloadModuleSymbol(char * ModuleName);
57__declspec(dllexport) UINT32 SymSearchSymbolForMask(const char * SearchMask);
60__declspec(dllexport) BOOLEAN SymCreateSymbolTableForDisassembler(void * CallbackFunction);
61__declspec(dllexport) UINT64 SymConvertNameToAddress(const char * FunctionOrVariableName, PBOOLEAN WasFound);
62__declspec(dllexport) BOOLEAN SymConvertFileToPdbPath(const char * LocalFilePath, char * ResultPath);
66__declspec(dllexport) BOOLEAN SymQuerySizeof( const char * StructNameOrTypeName, UINT32 * SizeOfField);
68}
69
71// Functions //
73
74BOOL
75SymGetFileParams(const char * FileName, DWORD & FileSize);
76
77BOOL
78SymGetFileSize(const char * FileName, DWORD & FileSize);
79
80VOID
82
83BOOL CALLBACK
84SymDisplayMaskSymbolsCallback(SYMBOL_INFO * SymInfo, ULONG SymbolSize, PVOID UserContext);
85
86BOOL CALLBACK
87SymDeliverDisassemblerSymbolMapCallback(SYMBOL_INFO * SymInfo, ULONG SymbolSize, PVOID UserContext);
88
89VOID
90SymShowSymbolDetails(SYMBOL_INFO & SymInfo);
91
92const char *
94
96SymbolPdbDownload(std::string SymName, const std::string & GUID, const std::string & SymPath, BOOLEAN IsSilentLoad);
int BOOL
Definition BasicTypes.h:23
UCHAR BOOLEAN
Definition BasicTypes.h:39
BOOLEAN * PBOOLEAN
Definition BasicTypes.h:40
#define VOID
Definition BasicTypes.h:33
unsigned __int64 UINT64
Definition BasicTypes.h:21
unsigned long DWORD
Definition BasicTypes.h:22
unsigned int UINT32
Definition BasicTypes.h:48
char CHAR
Definition BasicTypes.h:31
unsigned long ULONG
Definition BasicTypes.h:37
POOL_TYPE SIZE_T ULONG Tag
Definition Hooks.h:168
BOOLEAN SymCastingQueryForFiledsAndTypes(const char *StructName, const char *FiledOfStructName, PBOOLEAN IsStructNamePointerOrNot, PBOOLEAN IsFiledOfStructNamePointerOrNot, char **NewStructOrTypeName, UINT32 *OffsetOfFieldFromTop, UINT32 *SizeOfField)
This function returns the needed details for making support for the casting in the script engine.
Definition casting.cpp:72
BOOLEAN SymQuerySizeof(const char *StructNameOrTypeName, UINT32 *SizeOfField)
This function returns the sizeof of the structure.
Definition casting.cpp:248
Hold detail about the loaded modules.
Definition symbol-parser.h:29
UINT64 BaseAddress
Definition symbol-parser.h:30
UINT64 ModuleBase
Definition symbol-parser.h:31
char PdbFilePath[MAX_PATH]
Definition symbol-parser.h:34
char ModuleAlternativeName[_MAX_FNAME]
Definition symbol-parser.h:33
char ModuleName[_MAX_FNAME]
Definition symbol-parser.h:32
UINT32 SymUnloadAllSymbols()
Unload all the symbols.
Definition symbol-parser.cpp:726
UINT32 SymUnloadModuleSymbol(char *ModuleName)
Unload one module symbol.
Definition symbol-parser.cpp:667
void SymSetTextMessageCallback(PVOID Handler)
Set the function callback that will be called if any message needs to be shown.
Definition symbol-parser.cpp:32
BOOLEAN SymCreateSymbolTableForDisassembler(void *CallbackFunction)
Create symbol table for disassembler.
Definition symbol-parser.cpp:1147
UINT64 SymConvertNameToAddress(const char *FunctionOrVariableName, PBOOLEAN WasFound)
Convert function name to address.
Definition symbol-parser.cpp:804
BOOLEAN SymConvertFileToPdbFileAndGuidAndAgeDetails(const char *LocalFilePath, char *PdbFilePath, char *GuidAndAgeDetails, BOOLEAN Is32BitModule)
Convert a DLL to a Microsoft Symbol details like pdb file path and GUID.
Definition symbol-parser.cpp:1778
BOOLEAN SymConvertFileToPdbPath(const char *LocalFilePath, char *ResultPath)
Convert a DLL to a Microsoft Symbol path.
Definition symbol-parser.cpp:1687
UINT32 SymSearchSymbolForMask(const char *SearchMask)
Gets the offset from the symbol.
Definition symbol-parser.cpp:1100
BOOLEAN SymGetDataTypeSize(CHAR *TypeName, UINT64 *TypeSize)
Get the size of structures from the symbols.
Definition symbol-parser.cpp:1031
UINT32 SymLoadFileSymbol(UINT64 BaseAddress, const char *PdbFileName, const char *CustomModuleName)
load symbol based on a file name and GUID
Definition symbol-parser.cpp:532
BOOLEAN SymbolInitLoad(PVOID BufferToStoreDetails, UINT32 StoredLength, BOOLEAN DownloadIfAvailable, const char *SymbolPath, BOOLEAN IsSilentLoad)
check if the pdb files of loaded symbols are available or not
Definition symbol-parser.cpp:1851
VOID SymbolAbortLoading()
In the case of pressing CTRL+C, it sets a flag to abort the execution of the 'reload'ing and the 'dow...
Definition symbol-parser.cpp:2119
BOOLEAN SymShowDataBasedOnSymbolTypes(const char *TypeName, UINT64 Address, BOOLEAN IsStruct, PVOID BufferAddress, const char *AdditionalParameters)
Perform task for showing structures and data.
Definition symbol-parser.cpp:2141
BOOLEAN SymGetFieldOffset(CHAR *TypeName, CHAR *FieldName, UINT32 *FieldOffset)
Search and show symbols.
Definition symbol-parser.cpp:942
VOID SymShowSymbolDetails(SYMBOL_INFO &SymInfo)
Show symbols details.
Definition symbol-parser.cpp:1529
BOOL SymGetFileSize(const char *FileName, DWORD &FileSize)
Get symbol file size.
Definition symbol-parser.cpp:1274
char * PdbFilePath
Definition symbol-parser.h:63
CHAR * FieldName
Definition symbol-parser.h:58
CHAR UINT32 * FieldOffset
Definition symbol-parser.h:58
UINT64 BOOLEAN IsStruct
Definition symbol-parser.h:65
BOOL CALLBACK SymDisplayMaskSymbolsCallback(SYMBOL_INFO *SymInfo, ULONG SymbolSize, PVOID UserContext)
Callback for showing and enumerating symbols.
Definition symbol-parser.cpp:1482
UINT64 * TypeSize
Definition symbol-parser.h:59
UINT64 Address
Definition symbol-parser.h:65
VOID SymShowSymbolInfo(UINT64 ModBase)
Show symbol info.
Definition symbol-parser.cpp:1332
const char PBOOLEAN PBOOLEAN IsFiledOfStructNamePointerOrNot
Definition symbol-parser.h:67
UINT32 BOOLEAN const char * SymbolPath
Definition symbol-parser.h:64
char char BOOLEAN Is32BitModule
Definition symbol-parser.h:63
UINT32 BOOLEAN const char BOOLEAN IsSilentLoad
Definition symbol-parser.h:64
UINT32 StoredLength
Definition symbol-parser.h:64
const char const char * CustomModuleName
Definition symbol-parser.h:54
struct _SYMBOL_LOADED_MODULE_DETAILS * PSYMBOL_LOADED_MODULE_DETAILS
const char * SymTagStr(ULONG Tag)
Interpret different tags for pdbs.
Definition symbol-parser.cpp:1574
struct _SYMBOL_LOADED_MODULE_DETAILS SYMBOL_LOADED_MODULE_DETAILS
Hold detail about the loaded modules.
BOOL SymGetFileParams(const char *FileName, DWORD &FileSize)
Get symbol file parameters.
Definition symbol-parser.cpp:1220
BOOL CALLBACK SymDeliverDisassemblerSymbolMapCallback(SYMBOL_INFO *SymInfo, ULONG SymbolSize, PVOID UserContext)
Callback for delivering module!ObjectName to disassembler symbol map.
Definition symbol-parser.cpp:1505
const char * PdbFileName
Definition symbol-parser.h:54
char bool void * buffer_address
Definition symbol-parser.h:46
const char * FiledOfStructName
Definition symbol-parser.h:67
const char PBOOLEAN PBOOLEAN char ** NewStructOrTypeName
Definition symbol-parser.h:67
BOOLEAN SymbolPdbDownload(std::string SymName, const std::string &GUID, const std::string &SymPath, BOOLEAN IsSilentLoad)
download pdb file
Definition symbol-parser.cpp:2063
UINT64 BOOLEAN PVOID const char * AdditionalParameters
Definition symbol-parser.h:65
UINT64 BOOLEAN PVOID BufferAddress
Definition symbol-parser.h:65
char * ResultPath
Definition symbol-parser.h:62
UINT32 BOOLEAN DownloadIfAvailable
Definition symbol-parser.h:64
__declspec(dllimport) int pdbex_export(int argc
PBOOLEAN WasFound
Definition symbol-parser.h:61
char bool is_struct
Definition symbol-parser.h:46
char char * GuidAndAgeDetails
Definition symbol-parser.h:63
const char PBOOLEAN PBOOLEAN char UINT32 * OffsetOfFieldFromTop
Definition symbol-parser.h:67
char ** argv
Definition symbol-parser.h:46
const char PBOOLEAN IsStructNamePointerOrNot
Definition symbol-parser.h:67
UINT32 * SizeOfField
Definition symbol-parser.h:66