Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
NativePe — Libreria Object Pascal (Delphi) per il parsing, la mappatura, il caricamento e il dump di file PE di Windows, con rilocazioni, importazioni, TLS e lettura della memoria dei processi remoti. | Kitploit
Strumenti/GitHubGitHub/habanada/nativepe
Analisi Dinamica (Sandboxing)Memory ForensicsReverse EngineeringAnalisi MalwareUtilità e FrameworkAnalisi di BinariSviluppo PayloadBinary Exploitation
GitHubhabanada/nativepe

NativePe

Libreria Object Pascal (Delphi) per il parsing, la mappatura, il caricamento e il dump di file PE di Windows, con rilocazioni, importazioni, TLS e lettura della memoria dei processi remoti.

181 giorno faNon ancora revisionato

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 →
Vedi Repository
Condividi

NativePe

NativePe

NativePe è una libreria per Windows Portable Executable scritta in Object Pascal per Delphi.

Il progetto si concentra sul parsing, la mappatura, il caricamento, la rilocazione, la gestione delle importazioni ed esportazioni, il dumping, la lettura della memoria dei processi e le relative funzionalità interne di Windows. Supporta build Win32 e Win64 dallo stesso albero dei sorgenti.

NativePe è un progetto di ricerca. È stato testato con un ampio insieme di file PE normali, insoliti, malformati e ostili, ma non pretende di gestire correttamente ogni possibile file PE.

Motivazione

Parte della motivazione è personale. Ho usato Delphi intorno ai primi anni 2000 e volevo rivisitare lo sviluppo Windows di basso livello con Delphi moderno.

NativePe è anche un esperimento pratico per dimostrare che Object Pascal può ancora essere utilizzato per la ricerca su PE e sulle funzionalità interne di Windows.

Origine e relazione con libpeconv

Il core di elaborazione PE di NativePe è un port/reimplementazione in Object Pascal di libpeconv di hasherezade.

Il codice è stato riscritto in Object Pascal, ma la suddivisione dei moduli principali e molte operazioni pubbliche, percorsi di validazione, decisioni di flusso di controllo, regole di fallback, diagnostica e test sono stati derivati dal sorgente di libpeconv. NativePe non è quindi un'implementazione clean-room o progettata in modo indipendente della funzionalità di libpeconv che porta.

La revisione di libpeconv utilizzata dall'attuale harness differenziale è il commit 0fc25f680e03699d33ef3b2034a6724365f3d1a4.

Grazie a hasherezade per aver pubblicato libpeconv. Vedi docs/PROVENANCE.md per la relazione a livello di sorgente e THIRD-PARTY-NOTICES.md per le attribuzioni e le note di licenza.

Cosa è originale qui

NativePe è più di una traduzione sintattica di libpeconv. Il progetto attuale aggiunge funzionalità specifiche di NativePe e integrazione con Delphi/Windows attorno al core portato.

Questo include la risoluzione di API Set, provider di memoria WinAPI/NTAPI/direct-syscall pluggable, inizializzazione del security cookie, helper per il riciclo dei PE e codice di integrazione correlato. Queste parti non hanno un corrispettivo diretto a livello di modulo sorgente nel core di libpeconv fissato.

Il repository contiene anche progetti di test Delphi specifici di NativePe, fixture reali, strumenti per il corpus e test di integrazione Windows.

Funzionalità principali

  • Gestione di header e sezioni PE32 e PE32+
  • Conversione da RAW a virtuale e da virtuale a RAW
  • Rilocazioni di base
  • Gestione delle importazioni normali e delay-load
  • Ricerca e mappatura delle esportazioni
  • Parsing TLS e gestione dei callback
  • Parsing della directory delle risorse
  • Gestione della directory delle eccezioni
  • Parsing di Load Config
  • Ricerca dei moduli basata sul PEB
  • Caricamento manuale dei PE
  • Lettura e dumping di PE da processi remoti
  • Helper per la ricostruzione e la riparazione delle importazioni
  • Scoperta di code cave e helper per il riciclo dei PE
  • Helper per la redirezione di IAT e funzioni locali
  • Risoluzione opzionale degli API Set
  • Inizializzazione opzionale del security cookie
  • Layer di accesso alla memoria pluggable
  • Backend di memoria WinAPI
  • Backend di memoria NTAPI tramite ntdll
  • Backend di memoria direct syscall Win64
  • Target Win32 e Win64

Maggiori dettagli sono in docs/FEATURES.md.

Backend di memoria

NativePe separa la logica PE dalle operazioni di memoria del sistema operativo selezionate tramite TNativePeMemoryProvider.

I backend integrati attuali sono:

  • TWinApiMemoryProvider
  • TNtApiMemoryProvider
  • TSyscallMemoryProvider su Win64

Il percorso di hook esistente mantiene anche il suo switch di compatibilità opzionale UseSyscalls per la protezione della memoria basata su direct syscall.

Vedi docs/MEMORY-PROVIDERS.md.

Test

NativePe utilizza diversi livelli di test:

  • Test di regressione e integrazione DUnitX
  • Test su PE malformati
  • Test reali su processi e loader Windows
  • Un runner di corpus isolato
  • Verifiche di fedeltà e differenziali con libpeconv

La run differenziale documentata del 25 settembre 2026 ha elaborato 30.159 percorsi di corpus identici con NativePe e l'harness di libpeconv fissato. A livello di esito, 30.147 percorsi corrispondevano e 12 differivano. NativePe non ha registrato crash dei worker in quella run; l'harness di libpeconv ne ha registrati sei. Questi risultati descrivono solo questo corpus e questi harness e non stabiliscono una superiorità generale.

La run non era una run prestazionale di qualità benchmark, quindi i suoi dati di timing non vengono utilizzati per affermazioni sulle prestazioni. Corpus esterni e campioni di malware non sono distribuiti con NativePe.

Vedi docs/TESTING.md, docs/CORPUS-RESULTS.md e docs/LIBPECONV-COMPARISON.md.

Compilazione

NativePe è sviluppato con Delphi 12 Athens.

Apri NativePe.groupproj per compilare la demo inclusa, i test, il runner di corpus, lo strumento di dump dei processi e i progetti di test reali.

Il sorgente principale della libreria è sotto src. I progetti possono anche utilizzare NativePe direttamente aggiungendo src al percorso di ricerca delle unit di Delphi e referenziando le unit NativePe.* richieste.

Sia Win32 che Win64 sono supportati dai progetti inclusi.

Esempio minimo di loader

L'esempio seguente mappa un'immagine PE, applica le rilocazioni e risolve le importazioni. Non chiama il punto di ingresso del PE.

program PeLoaderMinimal;

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  NativePe.BufferUtil,
  NativePe.PeLoader;

var
  Image: TAlignedBuf;
  ImageSize: NativeUInt;

begin
  if ParamCount <> 1 then
    Halt(1);

  Image := LoadPeExecutable(ParamStr(1), ImageSize);
  if Image = nil then
    Halt(1);
  try
    Writeln('Loaded at: 0x', IntToHex(NativeUInt(Image), SizeOf(Pointer) * 2));
    Writeln('Virtual size: ', ImageSize);
  finally
    FreePeBuffer(Image, ImageSize);
  end;
end.

Aggiungi src al percorso di ricerca delle unit di Delphi ed esegui il programma con un file PE come unico argomento.

Esecuzione degli strumenti

Il repository contiene diversi eseguibili e script di supporto. I punti di ingresso principali sono documentati in docs/BINARIES.md.

Importante: NativePeDemo.exe carica ed esegue il file PE fornito. Usalo solo con file di test attendibili. Il runner di corpus è progettato per l'elaborazione statica dei PE e non esegue intenzionalmente punti di ingresso PE o callback TLS.

Documentazione

Scarica lo strumento