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
NativeMirror — Implémentation native en Delphi de la fonctionnalité PE-sieve avec une bibliothèque réutilisable, une interface CLI et une DLL compatible PE-sieve pour l'intégration avec HollowsHunter. | Kitploit
Outils/GitHubGitHub/habanada/nativemirror
Outils DéfensifsCriminalistique MémoireRétro-ingénierieAnalyse de MalwareCriminalistique NumériqueAnalyse de BinairesRéponse aux Incidents
GitHubhabanada/nativemirror

NativeMirror

Implémentation native en Delphi de la fonctionnalité PE-sieve avec une bibliothèque réutilisable, une interface CLI et une DLL compatible PE-sieve pour l'intégration avec HollowsHunter.

Voir le dépôt
530il y a 3 joursPas encore vérifié

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

NativeMirror

NativeMirror est une implémentation indépendante en Object Pascal des fonctionnalités de PE-sieve, adaptée de PE-sieve par hasherezade. Il analyse la mémoire des processus, détecte le code modifié ou injecté et extrait les fichiers PE.

L'implémentation utilise les API natives de Delphi et NativePe comme moteur PE. Elle peut être utilisée directement comme bibliothèque Delphi, via son CLI ou via une interface DLL compatible avec PE-sieve. Les trois partagent le même cœur de scanner. La cible de compatibilité est le comportement observable de manière externe de PE-sieve 0.4.1.5 ; l'équivalence comportementale complète n'a pas été établie.

Prérequis

  • Windows et Delphi 12, avec prise en charge des compilateurs Win32 et Win64.
  • NativePe : bibliothèque PE requise. Placez-la à côté de NativeMirror sous ../NativePe, ou ajustez les chemins de recherche Delphi.
  • NativeASM : backend de désassemblage Win64 optionnel. Le projet NativeMirrorScan.NativeAsm.dproj active USE_NATIVEASM. Sans lui, NativeMirror utilise le repli Delphi/LDE. Ajustez le chemin de recherche NativeASM selon votre installation.
  • Python 3 avec le lanceur Windows py : requis pour l'étape post-build de la DLL et les tests Python. Les scripts utilisent la bibliothèque standard Python.
  • DUnitX : requis pour compiler les exécuteurs de tests Delphi. Rendez ses unités disponibles dans le chemin de recherche de Delphi.
  • CMake et Visual Studio 2022 avec les outils C++ : nécessaires uniquement pour les tests de contrat de la DLL.

Certaines configurations de projet contiennent des chemins de dépendances locales. Vérifiez les chemins de recherche avant de compiler sur une autre machine.

Compilation

Ouvrez NativeMirror.groupproj dans Delphi et sélectionnez le projet, la plateforme et la configuration requis.

ProjetSortie
tools/NativeMirrorScan/NativeMirrorScan.dprojNativeMirrorScan.exe
tools/NativeMirrorDll/pe-sieve.dprojpe-sieve.dll
tests/ScannerIntegration/NativeMirrorTestTarget.dprojCible de test Win64
tests/ScannerIntegration/NativeMirrorTestTarget32.dprojCible de test Win32
tests/ScannerIntegration/NativeMirrorScannerTests.dprojExécuteur de tests du scanner Win64
tests/HollowsHunterIntegration/NativeMirrorHollowsHunterTests.dprojExécuteur de tests HollowsHunter Win64

Compilez le CLI et la DLL pour Win32 et Win64 selon les besoins. Compilez les deux cibles de test avant d'exécuter les tests d'intégration. Compilez les exécuteurs de tests pour Win64.

Les sorties vont dans bin/<Platform>/<Config>. Les exemples ci-dessous utilisent Debug. Les unités du compilateur vont dans dcu/. Gardez les exécutables hors de tools/.

Exécuter le scanner

Exécutez ces commandes depuis la racine du projet. Remplacez 1234 par l'ID du processus à analyser.

.\bin\Win64\Debug\NativeMirrorScan.exe /help
.\bin\Win64\Debug\NativeMirrorScan.exe /pid 1234
.\bin\Win64\Debug\NativeMirrorScan.exe /pid 1234 /json /quiet /ofilter 2
.\bin\Win64\Debug\NativeMirrorScan.exe /pid 1234 /dir output

/ofilter 2 désactive la sortie de dump. /dir output sélectionne le répertoire de sortie pour les rapports et les dumps. Utilisez l'exécutable Win32 sous bin/Win32/Debug si nécessaire. L'accès au processus cible dépend de vos autorisations Windows.

Utilisation directe depuis Delphi

Ajoutez src/ et ses sous-répertoires d'unités, ainsi que NativePe, au chemin de recherche de votre projet. Appelez ScanAndDump avec TNativeMirrorOptions. La bibliothèque est compilée dans votre application ; cette utilisation ne nécessite ni NativeMirrorScan.exe ni pe-sieve.dll. Python n'est nécessaire que pour la compilation séparée de la DLL et les tests Python.

Cet exemple console analyse le PID 1234 et affiche son rapport au format JSON :

program ScanExample;

{$APPTYPE CONSOLE}

uses
  System.JSON,
  NativeMirror.Core.Types,
  NativeMirror.Core.Options,
  NativeMirror.Core.Engine;

var
  Options: TNativeMirrorOptions;
  Report: TNativeMirrorReportEx;
  Json: TJSONObject;
begin
  Options := TNativeMirrorOptions.Default;
  Options.Pid := 1234;
  Options.Quiet := True;
  Options.OutputFilter := nmOutNoDir;
  Report := ScanAndDump(Options);
  try
    Json := Report.ToJson(Options.ResultsFilter, Options.JsonLevel);
    try
      Writeln(Json.ToJSON);
    finally
      Json.Free;
    end;
  finally
    Report.Free;
  end;
end.

Remplacez le PID par votre cible. nmOutNoDir désactive les fichiers de rapport et les dumps. Inspectez Report.ErrorReport pour les erreurs de scan et Report.ScanReport pour les résultats du scan. L'appelant possède le rapport retourné et doit le libérer.

Fichiers dans bin

Téléchargez pe-sieve32.exe et pe-sieve64.exe depuis les versions de PE-sieve. Les scripts de comparaison existants utilisent les exécutables v0.4.1.1. Placez les deux dans bin/Win64/Debug ; les scripts de test Win64 y cherchent leur scanner de référence. L'exécutable 32 est la référence Win32 d'origine, même s'il est stocké aux côtés des outils de test Win64.

Une configuration Debug ressemble à ceci :

bin/
  Win64/Debug/
    NativeMirrorScan.exe
    pe-sieve.dll
    pe-sieve.dll.exports.json
    pe-sieve32.exe
    pe-sieve64.exe
    NativeMirrorTestTarget.exe
    NativeMirrorScannerTests.exe
    NativeMirrorHollowsHunterTests.exe
    hollows_hunter.exe
  Win32/Debug/
    NativeMirrorScan.exe
    pe-sieve.dll
    pe-sieve.dll.exports.json
    NativeMirrorTestTarget32.exe

NativeMirror produit le CLI, la DLL, les enregistrements d'export, les cibles et les exécuteurs de tests. Les exécutables PE-sieve et HollowsHunter sont des téléchargements séparés. HollowsHunter n'est nécessaire que pour son test d'intégration ou pour une utilisation manuelle de la DLL.

HollowsHunter : utiliser la version DLL

Téléchargez hollows_hunter64_dll.zip, v0.4.1.1 depuis les versions de HollowsHunter. Utilisez le paquet DLL. Avec une architecture hôte et un contrat d'API correspondants, le pe-sieve.dll finalisé de NativeMirror remplace la DLL PE-sieve d'origine utilisée par HollowsHunter. L'exécutable statique autonome ne peut pas utiliser une DLL de remplacement. Le test d'intégration fourni couvre l'hôte DLL Win64 v0.4.1.1.

Pour une exécution manuelle, copiez le hollows_hunter.exe du paquet dans bin/Win64/Debug, à côté du pe-sieve.dll compilé par NativeMirror. Ne copiez pas la DLL d'origine du paquet par-dessus la DLL NativeMirror. L'hôte et la DLL doivent tous deux être en Win64.

.\bin\Win64\Debug\hollows_hunter.exe /pid 1234 /quiet /hooks /ofilter 2 /json /report 7

Pour la comparaison automatisée, extrayez l'EXE et la DLL originaux inchangés du même paquet dans :

tests/HollowsHunterIntegration/fixtures/Win64/pe-sieve-C/
  hollows_hunter.exe
  pe-sieve.dll
  manifest.json

Conservez le manifest.json existant. Il enregistre les versions attendues et les hachages SHA-256. Le runner vérifie ces fichiers, copie le même hôte dans des répertoires de référence et NativeMirror distincts, et teste chaque DLL contre des processus de test contrôlés. Il ne télécharge pas de fichiers et n'écrase pas la build dans bin.

Pourquoi la build de la DLL utilise Python

PE-sieve exporte PESieve_version comme une valeur de données 32 bits. Pour la version 0.4.1.5, cette valeur est 0x00040105. Un appelant s'attend à ce que l'adresse d'export pointe vers ces quatre octets, plutôt que vers une fonction renvoyant le nombre.

Télécharger l’outil