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-02 17:02:50 +0300
committerCube <alessandro.devito91@gmail.com>2021-01-02 17:02:50 +0300
commit8357dfcf4b5b0671f22081b246bb0f78c868ed83 (patch)
treebe872498e5b458eac34da6e0dddf2eeffbfee8c9
parent6d4970bd4a4d6b55ecda21f99b06a2b1d719e817 (diff)
Added new API ntdll.LdrLoadDll
-rw-r--r--peloader/winapi/Internal.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/peloader/winapi/Internal.c b/peloader/winapi/Internal.c
index d4de69f..ca2624c 100644
--- a/peloader/winapi/Internal.c
+++ b/peloader/winapi/Internal.c
@@ -48,6 +48,22 @@ ULONG WINAPI EtwEventWrite(HANDLE RegHAndle, PVOID EventDescriptor, ULONG UserDa
return 0;
}
+static HANDLE WINAPI LdrLoadDll(PWCHAR PathToFile,
+ ULONG Flags,
+ PUNICODE_STRING ModuleFilename,
+ PHANDLE ModuleHandle)
+{
+ char *PathToFileA = CreateAnsiFromWide(PathToFile);
+ char *ModuleFilenameA = CreateAnsiFromWide(ModuleFilename);
+
+ DebugLog("%p [%s], %p [%s], %p, %#x", PathToFile, PathToFileA, ModuleFilename, ModuleFilenameA, ModuleHandle, Flags);
+
+ free(PathToFileA);
+ free(ModuleFilenameA);
+
+ return (HANDLE) 'LOAD';
+}
+
NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE Module,
PANSI_STRING Name,
WORD Ordinal,
@@ -74,4 +90,5 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE Module,
DECLARE_CRT_EXPORT("RtlAcquirePebLock", RtlAcquirePebLock);
DECLARE_CRT_EXPORT("RtlReleasePebLock", RtlReleasePebLock);
DECLARE_CRT_EXPORT("LdrGetDllHandle", LdrGetDllHandle);
+DECLARE_CRT_EXPORT("LdrLoadDll", LdrLoadDll);
DECLARE_CRT_EXPORT("LdrGetProcedureAddress", LdrGetProcedureAddress);