mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-07-31 20:05:43 +00:00
199 lines
4.6 KiB
C
199 lines
4.6 KiB
C
/**
|
|
* @file symbol-stub-linux.c
|
|
* @author Max Raulea (max.raulea@hyperdbg.org)
|
|
* @brief Linux stub implementations of the symbol-parser (Sym*) exports
|
|
* @details The Windows implementation lives in the symbol-parser/ subproject and
|
|
* is built on DbgHelp + PDB files (via the DIA-SDK-based pdbex), none of
|
|
* which is available on Linux. The script-engine library calls these
|
|
* Sym* functions directly, so without definitions libscript-engine.so
|
|
* fails to link. These stubs satisfy the link and keep every call site
|
|
* intact; symbol resolution is simply unavailable until a real Linux
|
|
* backend (ELF/DWARF, or an LLVM DebugInfo/PDB port of symbol-parser)
|
|
* is implemented.
|
|
*
|
|
* The signatures mirror include/SDK/imports/user/HyperDbgSymImports.h
|
|
* exactly. Return values indicate "nothing found / not supported"
|
|
* (0 / FALSE) and any out-parameters are cleared.
|
|
*
|
|
* TODO: replace with a real symbol backend and drop this file from the
|
|
* UNIX branch of script-engine/CMakeLists.txt.
|
|
*
|
|
* @version 0.1
|
|
* @date 2026-07-24
|
|
*
|
|
* @copyright This project is released under the GNU Public License v3.
|
|
*
|
|
*/
|
|
#include "pch.h"
|
|
|
|
#ifdef __linux__
|
|
|
|
VOID
|
|
SymSetTextMessageCallback(PVOID Handler)
|
|
{
|
|
(void)Handler;
|
|
}
|
|
|
|
VOID
|
|
SymbolAbortLoading()
|
|
{
|
|
}
|
|
|
|
UINT64
|
|
SymConvertNameToAddress(const CHAR * FunctionOrVariableName, PBOOLEAN WasFound)
|
|
{
|
|
(void)FunctionOrVariableName;
|
|
|
|
if (WasFound != NULL)
|
|
{
|
|
*WasFound = FALSE;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
UINT32
|
|
SymLoadFileSymbol(UINT64 BaseAddress, const CHAR * PdbFileName, const CHAR * CustomModuleName)
|
|
{
|
|
(void)BaseAddress;
|
|
(void)PdbFileName;
|
|
(void)CustomModuleName;
|
|
|
|
return 0;
|
|
}
|
|
|
|
UINT32
|
|
SymUnloadAllSymbols()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
UINT32
|
|
SymUnloadModuleSymbol(CHAR * ModuleName)
|
|
{
|
|
(void)ModuleName;
|
|
|
|
return 0;
|
|
}
|
|
|
|
UINT32
|
|
SymSearchSymbolForMask(const CHAR * SearchMask)
|
|
{
|
|
(void)SearchMask;
|
|
|
|
return 0;
|
|
}
|
|
|
|
BOOLEAN
|
|
SymGetFieldOffset(CHAR * TypeName, CHAR * FieldName, UINT32 * FieldOffset)
|
|
{
|
|
(void)TypeName;
|
|
(void)FieldName;
|
|
|
|
if (FieldOffset != NULL)
|
|
{
|
|
*FieldOffset = 0;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
BOOLEAN
|
|
SymGetDataTypeSize(CHAR * TypeName, UINT64 * TypeSize)
|
|
{
|
|
(void)TypeName;
|
|
|
|
if (TypeSize != NULL)
|
|
{
|
|
*TypeSize = 0;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
BOOLEAN
|
|
SymCreateSymbolTableForDisassembler(PVOID CallbackFunction)
|
|
{
|
|
(void)CallbackFunction;
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
BOOLEAN
|
|
SymConvertFileToPdbPath(const CHAR * LocalFilePath, CHAR * ResultPath, SIZE_T ResultPathSize)
|
|
{
|
|
(void)LocalFilePath;
|
|
|
|
if (ResultPath != NULL && ResultPathSize > 0)
|
|
{
|
|
ResultPath[0] = '\0';
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
BOOLEAN
|
|
SymConvertFileToPdbFileAndGuidAndAgeDetails(const CHAR * LocalFilePath,
|
|
CHAR * PdbFilePath,
|
|
CHAR * GuidAndAgeDetails,
|
|
BOOLEAN Is32BitModule)
|
|
{
|
|
(void)LocalFilePath;
|
|
(void)PdbFilePath;
|
|
(void)GuidAndAgeDetails;
|
|
(void)Is32BitModule;
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
BOOLEAN
|
|
SymConvertLoadedModuleToPdbFileAndGuidAndAgeDetails(const BYTE * LoadedImageBytes,
|
|
SIZE_T LoadedImageSize,
|
|
const CHAR * LocalFilePath,
|
|
CHAR * PdbFilePath,
|
|
CHAR * GuidAndAgeDetails,
|
|
BOOLEAN Is32BitModule)
|
|
{
|
|
(void)LoadedImageBytes;
|
|
(void)LoadedImageSize;
|
|
(void)LocalFilePath;
|
|
(void)PdbFilePath;
|
|
(void)GuidAndAgeDetails;
|
|
(void)Is32BitModule;
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
BOOLEAN
|
|
SymbolInitLoad(PVOID BufferToStoreDetails,
|
|
UINT32 StoredLength,
|
|
BOOLEAN DownloadIfAvailable,
|
|
const CHAR * SymbolPath,
|
|
BOOLEAN IsSilentLoad)
|
|
{
|
|
(void)BufferToStoreDetails;
|
|
(void)StoredLength;
|
|
(void)DownloadIfAvailable;
|
|
(void)SymbolPath;
|
|
(void)IsSilentLoad;
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
BOOLEAN
|
|
SymShowDataBasedOnSymbolTypes(const CHAR * TypeName,
|
|
UINT64 Address,
|
|
BOOLEAN IsStruct,
|
|
PVOID BufferAddress,
|
|
const CHAR * AdditionalParameters)
|
|
{
|
|
(void)TypeName;
|
|
(void)Address;
|
|
(void)IsStruct;
|
|
(void)BufferAddress;
|
|
(void)AdditionalParameters;
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
#endif // __linux__
|