Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
NativePe — Bibliothèque Object Pascal (Delphi) pour l'analyse, le mapping, le chargement et le dumping de fichiers PE Windows, avec relocations, imports, TLS et lecture de la mémoire des processus distants. | Kitploit
Outils/GitHubGitHub/habanada/nativepe
Analyse Dynamique (Sandboxing)Criminalistique MémoireRétro-ingénierieAnalyse de MalwareUtilitaires et FrameworksAnalyse de BinairesDéveloppement de Charges UtilesExploitation de Binaires
GitHubhabanada/nativepe

NativePe

Bibliothèque Object Pascal (Delphi) pour l'analyse, le mapping, le chargement et le dumping de fichiers PE Windows, avec relocations, imports, TLS et lecture de la mémoire des processus distants.

18il y a 1 jourPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

NativePe

NativePe

NativePe est une bibliothèque Windows Portable Executable écrite en Object Pascal pour Delphi.

Le projet se concentre sur l'analyse PE, le mapping, le chargement, la relocalisation, la gestion des imports et exports, le dumping, la lecture de mémoire de processus et les mécanismes internes Windows associés. Il prend en charge les builds Win32 et Win64 à partir de la même arborescence source.

NativePe est un projet de recherche. Il a été testé contre un large ensemble de fichiers PE normaux, inhabituels, malformés et hostiles, mais il ne prétend pas gérer correctement tous les fichiers PE possibles.

Motivation

Une partie de la motivation est personnelle. J'ai utilisé Delphi vers le début des années 2000 et je souhaitais revisiter le développement Windows de bas niveau avec Delphi moderne.

NativePe est également une expérience pratique visant à montrer qu'Object Pascal peut encore être utilisé pour la recherche sur les PE et les mécanismes internes Windows.

Origine et relation avec libpeconv

Le cœur de traitement PE de NativePe est un portage/réimplémentation en Object Pascal de libpeconv par hasherezade.

Le code a été réécrit en Object Pascal, mais la découpe des modules principaux et de nombreuses opérations publiques, chemins de validation, décisions de flux de contrôle, règles de repli, diagnostics et tests ont été dérivés du code source de libpeconv. NativePe n'est donc pas une implémentation clean-room ou conçue indépendamment de la fonctionnalité libpeconv qu'il porte.

La révision de libpeconv utilisée par le harnais différentiel actuel est le commit 0fc25f680e03699d33ef3b2034a6724365f3d1a4.

Merci à hasherezade pour la publication de libpeconv. Voir docs/PROVENANCE.md pour la relation au niveau source et THIRD-PARTY-NOTICES.md pour les attributions et mentions de licence.

Ce qui est original ici

NativePe est plus qu'une traduction syntaxique de libpeconv. Le projet actuel ajoute des fonctionnalités spécifiques à NativePe et une intégration Delphi/Windows autour du cœur porté.

Cela inclut la résolution des API Set, des fournisseurs de mémoire WinAPI/NTAPI/appel système direct enfichables, l'initialisation du security cookie, des helpers de recyclage de PE et du code d'intégration associé. Ces parties n'ont pas de contrepartie directe en module source dans le cœur libpeconv épinglé.

Le dépôt contient également des projets de test Delphi spécifiques à NativePe, des fixtures réelles, des outils de corpus et des tests d'intégration Windows.

Fonctionnalités principales

  • Gestion des en-têtes et sections PE32 et PE32+
  • Conversion RAW vers virtuel et virtuel vers RAW
  • Relocalisations de base
  • Gestion des imports normaux et à chargement différé
  • Recherche et mapping des exports
  • Analyse TLS et gestion des callbacks
  • Analyse du répertoire de ressources
  • Gestion du répertoire d'exceptions
  • Analyse du Load Config
  • Recherche de modules basée sur le PEB
  • Chargement manuel de PE
  • Lecture et dumping de PE dans des processus distants
  • Helpers de reconstruction et de réparation des imports
  • Découverte de code caves et helpers de recyclage de PE
  • Helpers de redirection IAT et de fonctions locales
  • Résolution optionnelle des API Set
  • Initialisation optionnelle du security cookie
  • Couche d'accès mémoire enfichable
  • Backend mémoire WinAPI
  • Backend mémoire NTAPI via ntdll
  • Backend mémoire par appel système direct Win64
  • Cibles Win32 et Win64

Plus de détails dans docs/FEATURES.md.

Backends mémoire

NativePe sépare la logique PE des opérations mémoire du système d'exploitation sélectionné via TNativePeMemoryProvider.

Les backends intégrés actuels sont :

  • TWinApiMemoryProvider
  • TNtApiMemoryProvider
  • TSyscallMemoryProvider sur Win64

Le chemin de hook existant conserve également son commutateur de compatibilité optionnel UseSyscalls pour la protection mémoire basée sur les appels système directs.

Voir docs/MEMORY-PROVIDERS.md.

Tests

NativePe utilise plusieurs couches de tests :

  • Tests de régression et d'intégration DUnitX
  • Tests de PE malformés
  • Tests réels sur processus et loader Windows
  • Un exécuteur de corpus isolé
  • Vérifications de fidélité et différentielles avec libpeconv

L'exécution différentielle documentée du 25 septembre 2026 a traité 30 159 chemins de corpus identiques avec NativePe et le harnais libpeconv épinglé. Au niveau des résultats, 30 147 chemins correspondaient et 12 différaient. NativePe n'a enregistré aucun crash de worker lors de cette exécution ; le harnais libpeconv en a enregistré six. Ces résultats ne décrivent que ce corpus et ces harnais et n'établissent pas de supériorité générale.

L'exécution n'était pas une exécution de performance de qualité benchmark, donc ses données de timing ne sont pas utilisées pour des affirmations de performance. Les corpus externes et les échantillons de malware ne sont pas distribués avec NativePe.

Voir docs/TESTING.md, docs/CORPUS-RESULTS.md et docs/LIBPECONV-COMPARISON.md.

Compilation

NativePe est développé avec Delphi 12 Athens.

Ouvrez NativePe.groupproj pour compiler la démo incluse, les tests, l'exécuteur de corpus, l'outil de dump de processus et les projets de test réels.

Le code source de la bibliothèque principale se trouve sous src. Les projets peuvent également utiliser NativePe directement en ajoutant src au chemin de recherche des unités Delphi et en référençant les unités NativePe.* requises.

Win32 et Win64 sont tous deux pris en charge par les projets inclus.

Exemple de loader minimal

L'exemple suivant mappe une image PE, applique les relocalisations et résout les imports. Il n'appelle pas le point d'entrée du 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.

Ajoutez src au chemin de recherche des unités Delphi et exécutez le programme avec un fichier PE comme unique argument.

Exécution des outils

Le dépôt contient plusieurs exécutables et scripts auxiliaires. Les principaux points d'entrée sont documentés dans docs/BINARIES.md.

Important : NativePeDemo.exe charge et exécute le fichier PE fourni. Utilisez-le uniquement avec des fichiers de test de confiance. L'exécuteur de corpus est conçu pour le traitement statique de PE et n'exécute pas intentionnellement les points d'entrée PE ni les callbacks TLS.

Documentation

Télécharger l’outil