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
libpeconv — Custom-Bibliothek zum Laden und Manipulieren von PE-Dateien für manuelles Mapping, IAT-Hooking, Memory-Dumping und das Neuaufbauen von Importen für Malware-Analyse und Reverse Engineering. | Kitploit
Tools/GitHubGitHub/hasherezade/libpeconv
SpeicherforensikReverse EngineeringMalware-AnalyseDienstprogramme & FrameworksBinäranalysePayload-Entwicklung
GitHubhasherezade/libpeconv

libpeconv

Custom-Bibliothek zum Laden und Manipulieren von PE-Dateien für manuelles Mapping, IAT-Hooking, Memory-Dumping und das Neuaufbauen von Importen für Malware-Analyse und Reverse Engineering.

Repository anzeigen
1.4k207vor 4 MonatenVon 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
Webseite

libPeConv

Build status Codacy Badge Commit activity Last Commit

License Platform Badge

Eine Bibliothek zum Laden und Manipulieren von PE-Dateien.

Ziele

Das Ziel von libPEConv war es, ein „Schweizer Taschenmesser“ für das benutzerdefinierte Laden von PE-Dateien zu schaffen. Es bündelt verschiedene Hilfsfunktionen, die Sie schnell in Ihren eigenen Loader integrieren können. Zum Beispiel: Remapping von Sektionen, Anwenden von Relokationen, Laden von Imports, Parsen von Ressourcen.

Es ermöglicht nicht nur das Laden von PE-Dateien, sondern auch die Anpassung einzelner Schritte, z. B. IAT-Hooking (durch Bereitstellung benutzerdefinierter IAT-Auflöser) und Funktionsumleitung. Es ist jedoch NICHT auf Inline-Hooking ausgerichtet und sollte nicht mit Bibliotheken wie MS Detours oder MinHook verwechselt werden.

LibPeConv kann zum Erstellen von PE-Bindern verwendet werden, da es ermöglicht, eine PE-Datei direkt aus der Ressource zu laden und sie zu integrieren, als wäre es lokaler Code.

Außerdem kann es beim Dumpen von PE-Dateien aus dem Speicher und beim Wiederaufbau ihrer IATs helfen.

WARNUNG: Anwendungen mit MUI werden nicht unterstützt.

Einfaches Beispiel

Der einfachste Anwendungsfall: Verwenden Sie libPeConv, um eine EXE-Datei Ihrer Wahl manuell zu laden und auszuführen.

root@kitploit:~
#include <Windows.h>
#include <iostream>

#include <peconv.h> // include libPeConv header

int main(int argc, char *argv[])
{
    if (argc < 2) {
        std::cout << "Args: <path to the exe>" << std::endl;
        return 0;
    }
    LPCSTR pe_path = argv[1];

    // manually load the PE file using libPeConv:
    size_t v_size = 0;
#ifdef LOAD_FROM_PATH
    //if the PE is dropped on the disk, you can load it from the file:
    BYTE* my_pe = peconv::load_pe_executable(pe_path, v_size);
#else
    size_t bufsize = 0;
    BYTE *buffer = peconv::load_file(pe_path, bufsize);

    // if the file is NOT dropped on the disk, you can load it directly from a memory buffer:
    BYTE* my_pe = peconv::load_pe_executable(buffer, bufsize, v_size);
#endif
    if (!my_pe) {
        return -1;
    }
	
    // if the loaded PE needs to access resources, you may need to connect it to the PEB:
    peconv::set_main_module_in_peb((HMODULE)my_pe);
    
    // load delayed imports (if present):
    const ULONGLONG load_base = (ULONGLONG)my_pe;
    peconv::load_delayed_imports(my_pe, load_base);
  
    // if needed, you can run TLS callbacks before the Entry Point:
    peconv::run_tls_callbacks(my_pe, v_size);
	
    //calculate the Entry Point of the manually loaded module
    DWORD ep_rva = peconv::get_entry_point_rva(my_pe);
    if (!ep_rva) {
        return -2;
    }
    ULONG_PTR ep_va = ep_rva + (ULONG_PTR) my_pe;
    //assuming that the payload is an EXE file (not DLL) this will be the simplest prototype of the main:
    int (*new_main)() = (int(*)())ep_va;

    //call the Entry Point of the manually loaded PE:
    return new_main();
}

Siehe auch: https://github.com/hasherezade/libpeconv_tpl/blob/master/project_template/main.cpp

Weiterlesen

  • Wiki
  • Dokumentation
  • Beispiele
  • Tutorials
  • Projektvorlage
Tool herunterladen