Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
libpeconv — Libreria personalizzata per il caricamento e la manipolazione di PE per mapping manuale, hooking dell'IAT, dumping della memoria e ricostruzione delle importazioni per l'analisi malware e il reverse engineering. | Kitploit
Strumenti/GitHubGitHub/hasherezade/libpeconv
Memory ForensicsReverse EngineeringAnalisi MalwareUtilità e FrameworkAnalisi di BinariSviluppo Payload
GitHubhasherezade/libpeconv

libpeconv

Libreria personalizzata per il caricamento e la manipolazione di PE per mapping manuale, hooking dell'IAT, dumping della memoria e ricostruzione delle importazioni per l'analisi malware e il reverse engineering.

Vedi Repository
1.4k2074 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

libPeConv

Build status Codacy Badge Commit activity Last Commit

License Platform Badge

Una libreria per caricare e manipolare file PE.

Obiettivi

L'obiettivo di libPEConv era quello di creare un "coltellino svizzero" per il caricamento personalizzato di file PE. Raccoglie varie funzioni di supporto che puoi integrare rapidamente nel tuo loader personale. Ad esempio: rimappatura delle sezioni, applicazione delle rilocazioni, caricamento delle importazioni, parsing delle risorse.

Non solo permette di caricare file PE, ma anche di personalizzare alcuni passaggi, ad esempio l'hooking dell'IAT (fornendo resolver IAT personalizzati) e la redirezione delle funzioni. Tuttavia, NON è focalizzato sull'inline hooking e non deve essere confuso con librerie come MS Detours o MinHook.

LibPeConv può essere utilizzato per creare binder PE, poiché permette di caricare un PE direttamente dalla risorsa e integrarlo come se fosse codice locale.

Può anche aiutarti a eseguire il dump di PE dalla memoria e a ricostruire i loro IAT.

AVVERTENZA: le applicazioni che utilizzano MUI non sono supportate.

Esempio base

Il caso d'uso più semplice: usa libPeConv per caricare manualmente ed eseguire un EXE a tua scelta.

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();
}

Vedi anche: https://github.com/hasherezade/libpeconv_tpl/blob/master/project_template/main.cpp

Per saperne di più

  • Wiki
  • Docs
  • Esempi
  • Tutorial
  • Template di progetto
Scarica lo strumento