support win8.1

This commit is contained in:
Boring
2020-02-26 17:26:24 +08:00
parent e69080df11
commit 5f3472df47
11 changed files with 361 additions and 270 deletions
+38
View File
@@ -0,0 +1,38 @@
#include "LoadDllMemoryApi.h"
#include "Native.h"
HMEMORYMODULE WINAPI LoadLibraryMemory(PVOID BufferAddress) {
HMEMORYMODULE hMemoryModule = nullptr;
NTSTATUS status = NtLoadDllMemory(&hMemoryModule, BufferAddress, 0);
if (!NT_SUCCESS(status)) {
SetLastError(RtlNtStatusToDosError(status));
}
return hMemoryModule;
}
HMEMORYMODULE WINAPI LoadLibraryMemoryExA(PVOID BufferAddress, size_t Reserved, LPCSTR DllBaseName, LPCSTR DllFullName, DWORD Flags) {
HMEMORYMODULE hMemoryModule = nullptr;
NTSTATUS status = NtLoadDllMemoryExA(&hMemoryModule, nullptr, Flags, BufferAddress, Reserved, DllBaseName, DllFullName);
if (!NT_SUCCESS(status)) {
SetLastError(RtlNtStatusToDosError(status));
}
return hMemoryModule;
}
HMEMORYMODULE WINAPI LoadLibraryMemoryExW(PVOID BufferAddress, size_t Reserved, LPCWSTR DllBaseName, LPCWSTR DllFullName, DWORD Flags) {
HMEMORYMODULE hMemoryModule = nullptr;
NTSTATUS status = NtLoadDllMemoryExW(&hMemoryModule, nullptr, Flags, BufferAddress, Reserved, DllBaseName, DllFullName);
if (!NT_SUCCESS(status)) {
SetLastError(RtlNtStatusToDosError(status));
}
return hMemoryModule;
}
BOOL WINAPI FreeLibraryMemory(HMEMORYMODULE hMemoryModule) {
NTSTATUS status = NtUnloadDllMemory(hMemoryModule);
if (!NT_SUCCESS(status)) {
SetLastError(RtlNtStatusToDosError(status));
return FALSE;
}
return TRUE;
}