#pragma once #include "kd_driver.h" typedef struct _RTL_PROCESS_MODULE_INFORMATION { HANDLE Section; PVOID MappedBase; PVOID ImageBase; ULONG ImageSize; ULONG Flags; USHORT LoadOrderIndex; USHORT InitOrderIndex; USHORT LoadCount; USHORT OffsetToFileName; UCHAR FullPathName[256]; } RTL_PROCESS_MODULE_INFORMATION, * PRTL_PROCESS_MODULE_INFORMATION; typedef struct _RTL_PROCESS_MODULES { ULONG NumberOfModules; RTL_PROCESS_MODULE_INFORMATION Modules[1]; } RTL_PROCESS_MODULES, * PRTL_PROCESS_MODULES; namespace utils { auto GetKernelModule(const std::string& module_name) -> uint64_t; BOOLEAN bDataCompare(const BYTE* pData, const BYTE* bMask, const char* szMask); uintptr_t FindPattern(uintptr_t dwAddress, uintptr_t dwLen, BYTE* bMask, const char* szMask); PVOID FindSection(const char* sectionName, uintptr_t modulePtr, PULONG size); std::wstring GetFullTempPath(); bool CreateFileFromMemory(const std::wstring& desired_file_path, const char* address, size_t size); auto calc_comm_verify_check(int a, int b, int c, int d)->ULONG64; auto get_random_val(ULONG64 a, ULONG64 b)->ULONG64; auto GetVersion()->OSVERSIONINFOW; }