diff options
author | Cube <alessandro.devito91@gmail.com> | 2021-01-02 17:02:50 +0300 |
---|---|---|
committer | Cube <alessandro.devito91@gmail.com> | 2021-01-02 17:02:50 +0300 |
commit | 8357dfcf4b5b0671f22081b246bb0f78c868ed83 (patch) | |
tree | be872498e5b458eac34da6e0dddf2eeffbfee8c9 | |
parent | 6d4970bd4a4d6b55ecda21f99b06a2b1d719e817 (diff) |
Added new API ntdll.LdrLoadDll
-rw-r--r-- | peloader/winapi/Internal.c | 17 |
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); |