Files
2026-06-30 16:58:18 +08:00

45 lines
1.2 KiB
C++

#pragma once
#include "Base.h"
struct imported_
{
ULONG64 zw_setsystem_information;
ULONG64 mm_copy_virtualMemory;
ULONG64 nt_querysystem_information;
ULONG64 rtl_findexported_routinebyname;
ULONG64 ex_get_previous_mode;
ULONG64 io_create_driver;
ULONG64 zw_trace_control;
ULONG64 ps_getprocessimage_filname;
ULONG64 zw_protect_virtualmemory;
ULONG64 ps_lookup_processby_processid;
ULONG64 ps_getprocess_exitstatus;
ULONG64 io_getcurrent_process;
ULONG64 mm_copy_memory;
ULONG64 ps_getprocess_section_baseaddress;
ULONG64 ps_getprocess_id;
ULONG64 se_locateprocess_imagename;
ULONG64 nt_open_thread;
};
namespace kernel_api
{
//extern struct imported_ imported;
auto kernel_api_init() -> void;
NTSTATUS ntquerysysteminformation(ULONG SystemInformationClass,
PVOID SystemInformation,
ULONG SystemInformationLength,
PULONG ReturnLength);
UCHAR* psgetprocessimagefilname(PEPROCESS Process);
HANDLE psgetprocessid(PEPROCESS process);
NTSTATUS selocate_process_imagename(PEPROCESS Process, PUNICODE_STRING* pImageFileName);
PVOID rtlfindexportedroutinebyname(PVOID ImageBase, PCCH RoutineName);
NTSTATUS ntopenthread(PHANDLE ThreadHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, PCLIENT_ID ClientId);
}