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
NativeMirror — Implementazione nativa in Delphi della funzionalità di PE-sieve con una libreria riutilizzabile, CLI e DLL compatibile con PE-sieve per l'integrazione con HollowsHunter. | Kitploit
Strumenti/GitHubGitHub/habanada/nativemirror
Strumenti DifensiviMemory ForensicsReverse EngineeringAnalisi MalwareDigital ForensicsAnalisi di BinariRisposta agli Incidenti
GitHubhabanada/nativemirror

NativeMirror

Implementazione nativa in Delphi della funzionalità di PE-sieve con una libreria riutilizzabile, CLI e DLL compatibile con PE-sieve per l'integrazione con HollowsHunter.

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

NativeMirror

NativeMirror è un'implementazione indipendente in Object Pascal della funzionalità di PE-sieve, adattata da PE-sieve di hasherezade. Analizza la memoria dei processi, rileva codice modificato o iniettato ed esegue il dump dei file PE.

L'implementazione utilizza API native di Delphi e NativePe come motore PE. Può essere usata direttamente come libreria Delphi, tramite la sua CLI o tramite un'interfaccia DLL compatibile con PE-sieve. Tutte e tre condividono lo stesso core dello scanner. L'obiettivo di compatibilità è il comportamento osservabile esternamente di PE-sieve 0.4.1.5; l'equivalenza comportamentale completa non è stata stabilita.

Requisiti

  • Windows e Delphi 12, con supporto ai compilatori Win32 e Win64.
  • NativePe: libreria PE richiesta. Collocarla accanto a NativeMirror come ../NativePe, oppure modificare i percorsi di ricerca di Delphi.
  • NativeASM: backend di disassemblaggio Win64 opzionale. Il progetto NativeMirrorScan.NativeAsm.dproj abilita USE_NATIVEASM. In sua assenza, NativeMirror utilizza il fallback Delphi/LDE. Modificare il percorso di ricerca di NativeASM in base alla propria installazione.
  • Python 3 con il launcher Windows py: richiesto per il passaggio post-build della DLL e per i test Python. Gli script utilizzano la libreria standard di Python.
  • DUnitX: richiesto per compilare i test runner Delphi. Rendere disponibili le sue unit nella search path di Delphi.
  • CMake e Visual Studio 2022 con strumenti C++: necessari solo per i test del contratto della DLL.

Alcune configurazioni di progetto contengono percorsi di dipendenze locali. Verificare i percorsi di ricerca prima di compilare su un'altra macchina.

Compilazione

Aprire NativeMirror.groupproj in Delphi e selezionare il progetto, la piattaforma e la configurazione richiesti.

ProgettoOutput
tools/NativeMirrorScan/NativeMirrorScan.dprojNativeMirrorScan.exe
tools/NativeMirrorDll/pe-sieve.dprojpe-sieve.dll
tests/ScannerIntegration/NativeMirrorTestTarget.dprojTarget di test Win64
tests/ScannerIntegration/NativeMirrorTestTarget32.dprojTarget di test Win32
tests/ScannerIntegration/NativeMirrorScannerTests.dprojTest runner dello scanner Win64
tests/HollowsHunterIntegration/NativeMirrorHollowsHunterTests.dprojTest runner HollowsHunter Win64

Compilare la CLI e la DLL per Win32 e Win64 secondo necessità. Compilare entrambi i target di test prima di eseguire i test di integrazione. Compilare i test runner per Win64.

Gli output vengono generati in bin/<Platform>/<Config>. Gli esempi seguenti utilizzano Debug. Le unit del compilatore vengono generate in dcu/. Mantenere gli eseguibili fuori da tools/.

Eseguire lo scanner

Eseguire questi comandi dalla radice del progetto. Sostituire 1234 con l'ID del processo da analizzare.

.\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 disabilita l'output del dump. /dir output seleziona la directory di output per i report e i dump. Usa l'eseguibile Win32 in bin/Win32/Debug quando necessario. L'accesso al processo di destinazione dipende dai tuoi permessi di Windows.

Uso diretto da Delphi

Aggiungi src/ e le sue sottodirectory di unit, insieme a NativePe, al percorso di ricerca del tuo progetto. Chiama ScanAndDump con TNativeMirrorOptions. La libreria viene compilata nella tua applicazione; questo utilizzo non richiede né NativeMirrorScan.exe né pe-sieve.dll. Python è necessario solo per la build separata della DLL e per i test Python.

Questo esempio console analizza il PID 1234 e stampa il suo report come 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.

Sostituisci il PID con il tuo target. nmOutNoDir disabilita i file di report e i dump. Ispeziona Report.ErrorReport per gli errori di scansione e Report.ScanReport per i risultati della scansione. Il chiamante è proprietario del report restituito e deve liberarlo.

File in bin

Scarica pe-sieve32.exe e pe-sieve64.exe dalle release di PE-sieve. Gli script di confronto esistenti utilizzano gli eseguibili v0.4.1.1. Colloca entrambi in bin/Win64/Debug; gli script di test Win64 cercano lì il loro scanner di riferimento. L'eseguibile 32 è il riferimento Win32 originale, anche se è memorizzato insieme agli strumenti di test Win64.

Una configurazione Debug si presenta così:

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 produce la CLI, la DLL, i record di export, i target e i test runner. Gli eseguibili PE-sieve e HollowsHunter sono download separati. HollowsHunter è necessario solo per il suo test di integrazione o per l'uso manuale della DLL.

HollowsHunter: usare la build DLL

Scarica hollows_hunter64_dll.zip, v0.4.1.1 dalle release di HollowsHunter. Usa il pacchetto DLL. Con un'architettura host e un contratto API corrispondenti, la pe-sieve.dll finalizzata di NativeMirror sostituisce la DLL PE-sieve originale usata da HollowsHunter. L'eseguibile statico standalone non può utilizzare una DLL sostitutiva. Il test di integrazione fornito copre l'host DLL Win64 v0.4.1.1.

Per un'esecuzione manuale, copia il file hollows_hunter.exe del pacchetto in bin/Win64/Debug, accanto alla pe-sieve.dll compilata da NativeMirror. Non copiare la DLL originale del pacchetto sopra la DLL di NativeMirror. Sia l'host che la DLL devono essere Win64.

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

Per il confronto automatizzato, estrarre l'EXE e la DLL originali non modificati dallo stesso pacchetto in:

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

Mantieni il manifest.json esistente. Registra le versioni attese e gli hash SHA-256. Il runner controlla questi file, copia lo stesso host in directory separate di riferimento e NativeMirror, e verifica ciascuna DLL rispetto a processi di test controllati. Non scarica file né sovrascrive la build in bin.

Perché la build della DLL usa Python

PE-sieve esporta PESieve_version come valore dati a 32 bit. Per la versione 0.4.1.5, quel valore è 0x00040105. Un chiamante si aspetta che l'indirizzo dell'export punti a quei quattro byte, anziché a una funzione che restituisce il numero.

Il compilatore/linker Delphi 12 utilizzato da questo progetto non esporta la variabile direttamente tramite la clausola exports. La DLL contiene quindi il valore di versione contrassegnato ed esporta inizialmente una funzione helper con il nome richiesto.

Dopo il linking, l'evento post-build del progetto esegue:

Scarica lo strumento