Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #pragma once
- #include <ntdef.h>
- #include <ntifs.h>
- #include <ntddk.h>
- #include <windef.h>
- typedef struct PiDDBCacheEntry
- {
- LIST_ENTRY List;
- UNICODE_STRING DriverName;
- ULONG TimeDateStamp;
- NTSTATUS LoadStatus;
- char _0x0028[16];
- }PIDCacheobj;
- #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
- typedef struct _IMAGE_DATA_DIRECTORY
- {
- ULONG VirtualAddress;
- ULONG Size;
- } IMAGE_DATA_DIRECTORY, * PIMAGE_DATA_DIRECTORY;
- typedef struct _IMAGE_OPTIONAL_HEADER64
- {
- USHORT Magic;
- UCHAR MajorLinkerVersion;
- UCHAR MinorLinkerVersion;
- ULONG SizeOfCode;
- ULONG SizeOfInitializedData;
- ULONG SizeOfUninitializedData;
- ULONG AddressOfEntryPoint;
- ULONG BaseOfCode;
- ULONGLONG ImageBase;
- ULONG SectionAlignment;
- ULONG FileAlignment;
- USHORT MajorOperatingSystemVersion;
- USHORT MinorOperatingSystemVersion;
- USHORT MajorImageVersion;
- USHORT MinorImageVersion;
- USHORT MajorSubsystemVersion;
- USHORT MinorSubsystemVersion;
- ULONG Win32VersionValue;
- ULONG SizeOfImage;
- ULONG SizeOfHeaders;
- ULONG CheckSum;
- USHORT Subsystem;
- USHORT DllCharacteristics;
- ULONGLONG SizeOfStackReserve;
- ULONGLONG SizeOfStackCommit;
- ULONGLONG SizeOfHeapReserve;
- ULONGLONG SizeOfHeapCommit;
- ULONG LoaderFlags;
- ULONG NumberOfRvaAndSizes;
- struct _IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
- } IMAGE_OPTIONAL_HEADER64, * PIMAGE_OPTIONAL_HEADER64;
- typedef struct _IMAGE_FILE_HEADER
- {
- USHORT Machine;
- USHORT NumberOfSections;
- ULONG TimeDateStamp;
- ULONG PointerToSymbolTable;
- ULONG NumberOfSymbols;
- USHORT SizeOfOptionalHeader;
- USHORT Characteristics;
- } IMAGE_FILE_HEADER, * PIMAGE_FILE_HEADER;
- typedef struct _IMAGE_NT_HEADERS64
- {
- ULONG Signature;
- struct _IMAGE_FILE_HEADER FileHeader;
- struct _IMAGE_OPTIONAL_HEADER64 OptionalHeader;
- } IMAGE_NT_HEADERS64, * PIMAGE_NT_HEADERS64;
- typedef struct _IMAGE_SECTION_HEADER
- {
- UCHAR Name[8];
- union
- {
- ULONG PhysicalAddress;
- ULONG VirtualSize;
- } Misc;
- ULONG VirtualAddress;
- ULONG SizeOfRawData;
- ULONG PointerToRawData;
- ULONG PointerToRelocations;
- ULONG PointerToLinenumbers;
- USHORT NumberOfRelocations;
- USHORT NumberOfLinenumbers;
- ULONG Characteristics;
- } IMAGE_SECTION_HEADER, * PIMAGE_SECTION_HEADER;
- extern "C" NTSYSAPI
- PIMAGE_NT_HEADERS
- NTAPI
- RtlImageNtHeader(PVOID Base);
- typedef enum _SYSTEM_INFORMATION_CLASS
- {
- SystemBasicInformation,
- SystemProcessorInformation,
- SystemPerformanceInformation,
- SystemTimeOfDayInformation,
- SystemPathInformation,
- SystemProcessInformation,
- SystemCallCountInformation,
- SystemDeviceInformation,
- SystemProcessorPerformanceInformation,
- SystemFlagsInformation,
- SystemCallTimeInformation,
- SystemModuleInformation = 0x0B
- } SYSTEM_INFORMATION_CLASS,
- * PSYSTEM_INFORMATION_CLASS;
- typedef struct _SYSTEM_PROCESS_INFO
- {
- ULONG NextEntryOffset;
- ULONG NumberOfThreads;
- LARGE_INTEGER WorkingSetPrivateSize;
- ULONG HardFaultCount;
- ULONG NumberOfThreadsHighWatermark;
- ULONGLONG CycleTime;
- LARGE_INTEGER CreateTime;
- LARGE_INTEGER UserTime;
- LARGE_INTEGER KernelTime;
- UNICODE_STRING ImageName;
- KPRIORITY BasePriority;
- HANDLE UniqueProcessId;
- HANDLE InheritedFromUniqueProcessId;
- ULONG HandleCount;
- ULONG SessionId;
- ULONG_PTR UniqueProcessKey;
- SIZE_T PeakVirtualSize;
- SIZE_T VirtualSize;
- ULONG PageFaultCount;
- SIZE_T PeakWorkingSetSize;
- SIZE_T WorkingSetSize;
- SIZE_T QuotaPeakPagedPoolUsage;
- SIZE_T QuotaPagedPoolUsage;
- SIZE_T QuotaPeakNonPagedPoolUsage;
- SIZE_T QuotaNonPagedPoolUsage;
- SIZE_T PagefileUsage;
- SIZE_T PeakPagefileUsage;
- SIZE_T PrivatePageCount;
- LARGE_INTEGER ReadOperationCount;
- LARGE_INTEGER WriteOperationCount;
- LARGE_INTEGER OtherOperationCount;
- LARGE_INTEGER ReadTransferCount;
- LARGE_INTEGER WriteTransferCount;
- LARGE_INTEGER OtherTransferCount;
- }SYSTEM_PROCESS_INFO, * PSYSTEM_PROCESS_INFO;
- 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;
- typedef struct _PEB_LDR_DATA
- {
- ULONG Length;
- UCHAR Initialized;
- PVOID SsHandle;
- LIST_ENTRY InLoadOrderModuleList;
- LIST_ENTRY InMemoryOrderModuleList;
- LIST_ENTRY InInitializationOrderModuleList;
- } PEB_LDR_DATA, * PPEB_LDR_DATA;
- typedef struct _RTL_USER_PROCESS_PARAMETERS {
- BYTE Reserved1[16];
- PVOID Reserved2[10];
- UNICODE_STRING ImagePathName;
- UNICODE_STRING CommandLine;
- } RTL_USER_PROCESS_PARAMETERS, * PRTL_USER_PROCESS_PARAMETERS;
- typedef void(__stdcall* PPS_POST_PROCESS_INIT_ROUTINE)(void); // not exported
- typedef struct _PEB
- {
- UCHAR InheritedAddressSpace;
- UCHAR ReadImageFileExecOptions;
- UCHAR BeingDebugged;
- UCHAR BitField;
- PVOID Mutant;
- PVOID ImageBaseAddress;
- PPEB_LDR_DATA Ldr;
- PVOID ProcessParameters;
- PVOID SubSystemData;
- PVOID ProcessHeap;
- PVOID FastPebLock;
- PVOID AtlThunkSListPtr;
- PVOID IFEOKey;
- PVOID CrossProcessFlags;
- PVOID KernelCallbackTable;
- ULONG SystemReserved;
- ULONG AtlThunkSListPtr32;
- PVOID ApiSetMap;
- } PEB, * PPEB;
- typedef struct _LDR_DATA_TABLE_ENTRY
- {
- LIST_ENTRY InLoadOrderLinks;
- LIST_ENTRY InMemoryOrderLinks;
- LIST_ENTRY InInitializationOrderLinks;
- PVOID DllBase;
- PVOID EntryPoint;
- ULONG SizeOfImage;
- UNICODE_STRING FullDllName;
- UNICODE_STRING BaseDllName;
- ULONG Flags;
- USHORT LoadCount;
- USHORT TlsIndex;
- LIST_ENTRY HashLinks;
- ULONG TimeDateStamp;
- } LDR_DATA_TABLE_ENTRY, * PLDR_DATA_TABLE_ENTRY;
- extern "C" __declspec(dllimport) NTSTATUS NTAPI ZwProtectVirtualMemory
- (
- HANDLE ProcessHandle,
- PVOID * BaseAddress,
- PULONG ProtectSize,
- ULONG NewProtect,
- PULONG OldProtect
- );
- extern "C" NTKERNELAPI PVOID NTAPI RtlFindExportedRoutineByName(_In_ PVOID ImageBase, _In_ PCCH RoutineName);
- extern "C" NTSTATUS ZwQuerySystemInformation(ULONG InfoClass, PVOID Buffer, ULONG Length, PULONG ReturnLength);
- extern "C" NTKERNELAPI PPEB PsGetProcessPeb(IN PEPROCESS Process);
- extern "C" NTSYSAPI PIMAGE_NT_HEADERS NTAPI RtlImageNtHeader(PVOID Base);
- extern "C" NTKERNELAPI PVOID PsGetProcessSectionBaseAddress(__in PEPROCESS Process);
- extern "C"
- NTKERNELAPI
- PVOID
- NTAPI
- PsGetProcessWow64Process(_In_ PEPROCESS Process);
- extern "C" NTSTATUS NTAPI MmCopyVirtualMemory
- (
- PEPROCESS SourceProcess,
- PVOID SourceAddress,
- PEPROCESS TargetProcess,
- PVOID TargetAddress,
- SIZE_T BufferSize,
- KPROCESSOR_MODE PreviousMode,
- PSIZE_T ReturnSize
- );
- typedef struct _PEB_LDR_DATA32
- {
- ULONG Length;
- UCHAR Initialized;
- ULONG SsHandle;
- LIST_ENTRY32 InLoadOrderModuleList;
- LIST_ENTRY32 InMemoryOrderModuleList;
- LIST_ENTRY32 InInitializationOrderModuleList;
- } PEB_LDR_DATA32, * PPEB_LDR_DATA32;
- typedef struct _LDR_DATA_TABLE_ENTRY32
- {
- LIST_ENTRY32 InLoadOrderLinks;
- LIST_ENTRY32 InMemoryOrderLinks;
- LIST_ENTRY32 InInitializationOrderLinks;
- ULONG DllBase;
- ULONG EntryPoint;
- ULONG SizeOfImage;
- UNICODE_STRING32 FullDllName;
- UNICODE_STRING32 BaseDllName;
- ULONG Flags;
- USHORT LoadCount;
- USHORT TlsIndex;
- LIST_ENTRY32 HashLinks;
- ULONG TimeDateStamp;
- } LDR_DATA_TABLE_ENTRY32, * PLDR_DATA_TABLE_ENTRY32;
- typedef struct _PEB32
- {
- UCHAR InheritedAddressSpace;
- UCHAR ReadImageFileExecOptions;
- UCHAR BeingDebugged;
- UCHAR BitField;
- ULONG Mutant;
- ULONG ImageBaseAddress;
- ULONG Ldr;
- ULONG ProcessParameters;
- ULONG SubSystemData;
- ULONG ProcessHeap;
- ULONG FastPebLock;
- ULONG AtlThunkSListPtr;
- ULONG IFEOKey;
- ULONG CrossProcessFlags;
- ULONG UserSharedInfoPtr;
- ULONG SystemReserved;
- ULONG AtlThunkSListPtr32;
- ULONG ApiSetMap;
- } PEB32, * PPEB32;
Add Comment
Please, Sign In to add comment