diff options
author | Tavis Ormandy <taviso@gmail.com> | 2021-01-04 03:35:30 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-04 03:35:30 +0300 |
commit | b5ea40a01465b3811ab5168ff13e8a487436c71d (patch) | |
tree | 1465a1250562e264f75b75b0e08eb3ae270476c1 | |
parent | 6d4970bd4a4d6b55ecda21f99b06a2b1d719e817 (diff) | |
parent | 2a6e10f99fae0d5ec8cc2907a2da40f53ff94898 (diff) |
Merge pull request #87 from cube0x8/LdrLoadDll_api
Added new API ntdll.LdrLoadDll
-rw-r--r-- | peloader/winapi/Internal.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/peloader/winapi/Internal.c b/peloader/winapi/Internal.c index d4de69f..c0d806b 100644 --- a/peloader/winapi/Internal.c +++ b/peloader/winapi/Internal.c @@ -48,6 +48,20 @@ 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); + + DebugLog("%p [%s], %p, %p, %#x", PathToFile, PathToFileA, ModuleFilename, ModuleHandle, Flags); + + free(PathToFileA); + + return (HANDLE) 'LOAD'; +} + NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE Module, PANSI_STRING Name, WORD Ordinal, @@ -74,4 +88,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); |