Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
LdrLibraryEx — Eine kleine x64-Bibliothek zum Laden von DLLs in den Speicher. | Kitploit
Tools/GitHubGitHub/cracked5pider/ldrlibraryex
IDS/IPS-UmgehungPost-ExploitationRed TeamingPayload-EntwicklungArchived
GitHubcracked5pider/ldrlibraryex

LdrLibraryEx

Eine kleine x64-Bibliothek zum Laden von DLLs in den Speicher.

Repository anzeigen
46978vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

LdrLibraryEx

Eine kleine x64-Bibliothek zum Laden von DLLs in den Speicher.

Eigenschaften

  • geringe Abhängigkeiten & wenige verwendete Funktionen (nur ntdll.dll wird verwendet)
  • positionsunabhängiger Code
  • leichtgewichtig und minimal
  • einfach zu verwenden
  • Module aus dem Speicher laden
  • Module von der Festplatte laden
  • Unterstützung für API-Sets
  • Image-Load-Callbacks umgehen (durch privaten Speicher)
  • Unterstützung für Images mit verzögertem Import, TLS, SEH usw.

Dokumentation

Bibliotheks-Flags

Flags können kombiniert werden

LIBRARYEX_NONE: Modul von der Festplatte in den Speicher mappen und den Einstiegspunkt ausführen.

LIBRARYEX_BYPASS_LOAD_CALLBACK: Modul von der Festplatte in privaten Speicher (unbacked) mappen, wodurch Image-Load-Callbacks (PsSetLoadImageNotifyRoutine) umgangen werden.

LIBRARYEX_NO_ENTRY: Den Einstiegspunkt des Moduls nicht ausführen.

LIBRARYEX_BUFFER: Das Modul aus dem Speicher statt von der Festplatte mappen.

Funktion: LdrLibrary

Eine einfach zu verwendende Funktion zum Laden einer Bibliothek in den Speicher. Der erste Parameter kann, abhängig von den angegebenen Flags, entweder ein Wide-String-Modulname oder eine Speicheradresse sein, an der sich die PE-Datei befindet.

root@kitploit:~
/*!
 * @brief
 *  load library into memory
 *
 * @param Buffer
 *  buffer context to load library
 *  either a wide string or a buffer pointer 
 *  the to PE file to map (LIBRARYEX_BUFFER)
 *
 * @param Library
 *  loaded library pointer
 *
 * @param Flags
 *  flags
 *
 * @return
 *  status of function
 */
NTSTATUS LdrLibrary(
    _In_  PVOID  Buffer,
    _Out_ PVOID* Library,
    _In_  ULONG  Flags
);

Dieses Beispiel zeigt, wie ein Modul von der Festplatte (aus dem System32-Pfad) geladen wird:

root@kitploit:~
PVOID Module = { 0 };
ULONG Flags  = { 0 };

//
// mapping flags to be used by the library
//
Flags = LIBRARYEX_NONE; 

//
// map file into memory
//
if ( ! NT_SUCCESS( Status = LdrLibrary( L"advapi32.dll", &Module, Flags ) ) ) {
    printf( "[-] LdrLibraryEx Failed: %p\n", Status );
    return; 
}

printf( "[*] Module @ %p\n", Module );

Dieses Beispiel zeigt, wie ein Modul aus einem Speicherpuffer geladen wird:

root@kitploit:~
PVOID Module = { 0 };
ULONG Flags  = { 0 };

//
// mapping flags to be used by the library
//
Flags = LIBRARYEX_NONE  | 
        LIBRARYEX_BUFFER; 

//
// read file on disk into memory
//
if ( ! ( Image = ReadFileBuffer( L"C:\\Windows\\System32\\advapi32.dll", NULL ) ) ) {
    puts( "[-] ReadFileBuffer Failed" );
    return;
}

//
// map file into memory
//
if ( ! NT_SUCCESS( Status = LdrLibrary( Image, &Module, Flags ) ) ) {
    printf( "[-] LdrLibraryEx Failed: %p\n", Status );
    return;
}

printf( "[*] Module @ %p\n", Module );

Es ist auch möglich, Module anhand ihres API-Sets zu laden (nur Windows 10+):

root@kitploit:~
//
// map file into memory
//
if ( ! NT_SUCCESS( Status = LdrLibrary( L"api-ms-win-base-util-l1-1-0.dll", &Module, Flags ) ) ) {
    printf( "[-] LdrLibraryEx Failed: %p\n", Status );
    return;
}

printf( "[*] Module @ %p\n",  );

Funktion: LdrLibraryEx

LdrLibraryEx ermöglicht es, bestimmte Funktionen zu hooken, um das Verhalten zu ändern, wie eine Bibliothek in den Speicher gemappt werden soll.

root@kitploit:~
//
// mapping flags to be used by the library
// and insert the loaded module into Peb
//
Flags = LIBRARYEX_BYPASS_LOAD_CALLBACK |
        LIBRARYEX_NO_ENTRY;

//
// init LibraryEx context
//
if ( ! NT_SUCCESS( Status = LdrLibraryCtx( &Ctx, Flags ) ) ) {
    printf( "[-] LdrLibraryCtx Failed: %d\n", Status );
    goto END;
}

//
// hook function
//
Ctx.LdrLoadDll = C_PTR( HookLdrLoadDll );

//
// map file into memory
//
if ( ! NT_SUCCESS( Status = LdrLibraryEx( &Ctx, L"cryptsp.dll", &Module, Flags ) ) ) {
    printf( "[-] LdrLibraryEx Failed: %p\n", Status );
    return; 
}

Hinweis

Diese Codebasis ist für x86_64-mingw geschrieben und optimiert und wird höchstwahrscheinlich unter Visual Studio nicht funktionieren oder kompilieren.

Danksagungen

Ein großer Dank gilt den folgenden Ressourcen und Projekten:

  • DarkLoadLibrary
  • MDSec: Bypassing Image loader kernel callbacks
  • ReactOS LdrLoadDll
  • Vergilius Project

Dieses Projekt sollte nicht in einer realen Umgebung oder in einem echten Einsatz verwendet werden. Ich habe es hauptsächlich geschrieben, um zu verstehen und mehr darüber zu lernen, wie der Windows-Loader funktioniert. Ich habe es als Bibliothek geschrieben, weil ich es für andere Arten von öffentlichen und privaten Projekten verwenden wollte. Ich habe mein Ziel erreicht. Bis dann.

Tool herunterladen