Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/taviso/loadlibrary.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCube <alessandro.devito91@gmail.com>2021-01-06 22:37:10 +0300
committerCube <alessandro.devito91@gmail.com>2021-01-06 22:37:10 +0300
commitde5bda0d19064f85d103da69ab2f5d167bf7d9c9 (patch)
treec9ea0df3a59841069c676acf5e410a9886ab4576
parent95c74311f24ef0c524a78f679dd895d4ce7b662b (diff)
Added RtlFreeHeap and RtlSetHeapInformation APIs
-rw-r--r--peloader/winapi/Heap.c20
-rw-r--r--peloader/winapi/LoadLibrary.c8
2 files changed, 24 insertions, 4 deletions
diff --git a/peloader/winapi/Heap.c b/peloader/winapi/Heap.c
index d34bf07..5747232 100644
--- a/peloader/winapi/Heap.c
+++ b/peloader/winapi/Heap.c
@@ -51,6 +51,15 @@ STATIC BOOL WINAPI HeapFree(HANDLE hHeap, DWORD dwFlags, PVOID lpMem)
return TRUE;
}
+STATIC BOOL WINAPI RtlFreeHeap(PVOID HeapHandle, ULONG Flags, PVOID BaseAddress)
+{
+ DebugLog("%p, %#x, %p", HeapHandle, Flags, BaseAddress);
+
+ free(BaseAddress);
+
+ return TRUE;
+}
+
STATIC SIZE_T WINAPI HeapSize(HANDLE hHeap, DWORD dwFlags, PVOID lpMem)
{
return malloc_usable_size(lpMem);
@@ -105,6 +114,15 @@ STATIC PVOID WINAPI RtlAllocateHeap(PVOID HeapHandle,
return malloc(Size);
}
+STATIC NTSTATUS WINAPI RtlSetHeapInformation(PVOID Heap,
+ HEAP_INFORMATION_CLASS HeapInformationClass,
+ PVOID HeapInformation,
+ SIZE_T HeapInformationLength)
+{
+ DebugLog("%p, %d", Heap, HeapInformationLength);
+ return 0;
+}
+
STATIC PVOID WINAPI GlobalAlloc(UINT uFlags, SIZE_T uBytes)
{
PVOID Buffer = malloc(uBytes);
@@ -126,6 +144,8 @@ DECLARE_CRT_EXPORT("HeapCreate", HeapCreate);
DECLARE_CRT_EXPORT("GetProcessHeap", GetProcessHeap);
DECLARE_CRT_EXPORT("HeapAlloc", HeapAlloc);
DECLARE_CRT_EXPORT("HeapFree", HeapFree);
+DECLARE_CRT_EXPORT("RtlFreeHeap", RtlFreeHeap);
+DECLARE_CRT_EXPORT("RtlSetHeapInformation", RtlSetHeapInformation);
DECLARE_CRT_EXPORT("HeapSize", HeapSize);
DECLARE_CRT_EXPORT("HeapReAlloc", HeapReAlloc);
DECLARE_CRT_EXPORT("LocalAlloc", LocalAlloc);
diff --git a/peloader/winapi/LoadLibrary.c b/peloader/winapi/LoadLibrary.c
index ba796bd..cc95e05 100644
--- a/peloader/winapi/LoadLibrary.c
+++ b/peloader/winapi/LoadLibrary.c
@@ -77,7 +77,7 @@ static DWORD WINAPI GetModuleFileNameA(HANDLE hModule, PCHAR lpFilename, DWORD n
{
DebugLog("%p, %p, %u", hModule, lpFilename, nSize);
- strncpy(lpFilename, "fakename.exe", nSize);
+ strncpy(lpFilename, "C:\\dummy\\fakename.exe", nSize);
return strlen(lpFilename);
}
@@ -86,11 +86,11 @@ static DWORD WINAPI GetModuleFileNameW(HANDLE hModule, PWCHAR lpFilename, DWORD
{
DebugLog("%p, %p, %u", hModule, lpFilename, nSize);
- if (nSize > strlen("fakename.exe")) {
- memcpy(lpFilename, L"fakename.exe", sizeof(L"fakename.exe"));
+ if (nSize > strlen("C:\\dummy\\fakename.exe")) {
+ memcpy(lpFilename, L"C:\\dummy\\fakename.exe", sizeof(L"C:\\dummy\\fakename.exe"));
}
- return strlen("fakename.exe");
+ return strlen("C:\\dummy\\fakename.exe");
}
static HANDLE WINAPI GetModuleHandleA(PCHAR lpModuleName)