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
Process-Dump — Strumento Windows per scaricare file PE di malware dalla memoria su disco per l'analisi. | Kitploit
Strumenti/GitHubGitHub/glmcdona/process-dump
Memory ForensicsReverse EngineeringInformatica ForenseAnalisi MalwareAnalisi di Binari
GitHubglmcdona/process-dump

Process-Dump

Strumento Windows per scaricare file PE di malware dalla memoria su disco per l'analisi.

Vedi Repository
1.9k28343 anni 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

Process Dump

Process Dump è uno strumento da riga di comando per reverse engineering su Windows che permette di scaricare su disco i componenti di memoria dei malware per analizzarli. Spesso i file malware sono impacchettati e offuscati prima di essere eseguiti per evitare i rilevatori antivirus; tuttavia, quando questi file vengono eseguiti, spesso si decomprimono o iniettano una versione pulita del codice malware in memoria. Un compito comune per i ricercatori di malware durante l'analisi è quello di scaricare questo codice decompresso dalla memoria su disco per la scansione con prodotti antivirus o per l'analisi con strumenti di analisi statica come IDA.

Process Dump funziona su sistemi operativi Windows a 32 e 64 bit e può scaricare componenti di memoria da processi specifici o da tutti i processi in esecuzione. Process Dump supporta la creazione e l'utilizzo di un database di hash puliti, in modo da poter saltare lo scaricamento di tutti i file puliti come kernel32.dll. Le sue caratteristiche principali includono:

  • Scarica il codice da un processo specifico o da tutti i processi.
  • Trova e scarica moduli nascosti che non sono caricati correttamente nei processi.
  • Trova e scarica blocchi di codice "liberi" anche se non sono associati a un file PE. Crea un'intestazione PE e una tabella delle importazioni per i blocchi.
  • Ricostruisce le importazioni utilizzando un approccio aggressivo.
  • Può funzionare in modalità monitoraggio di chiusura ('-closemon'), in cui i processi vengono messi in pausa e scaricati appena prima che terminino.
  • Multi-thread, quindi quando si scaricano tutti i processi in esecuzione, è piuttosto veloce.
  • Può generare un database di hash puliti. Generalo prima che una macchina venga infettata da malware, così Process Dump scaricherà solo i nuovi componenti malware dannosi.

Mantengo una release ufficiale compilata sul mio sito web qui: https://split-code.com/processdump.html

Installazione

Puoi scaricare l'ultima release compilata di Process Dump qui:

  • https://github.com/glmcdona/Process-Dump/releases

Compilazione del codice sorgente

Questo è progettato per Visual Studio 2019 e funziona con l'edizione Community gratuita. Basta aprire il file di progetto con VS2019 e compilare, dovrebbe essere facile!

Argomenti della riga di comando

Process Dump può essere utilizzato per scaricare tutto il codice sconosciuto dalla memoria (flag '-system'), scaricare processi specifici, o funzionare in modalità di monitoraggio che scarica tutti i processi appena prima che terminino.

Prima del primo utilizzo di questo strumento, su una workstation pulita, il database di hash puliti di esclusione può essere generato con:

  • pd -db genquick
  • pd -db gen

Esempi di utilizzo:

  • pd -system
  • pd -pid 419
  • pd -pid 0x1a3
  • pd -pid 0x1a3 -a 0x401000 -o c:\dump\ -c c:\dump\test\clean.db
  • pd -p chrome.exe
  • pd -p "(?i).*chrome.*"
  • pd -closemon

Gli argomenti della riga di comando possono essere raggruppati come segue:

Opzioni generali di scaricamento

Opzioni del database di hash puliti

Opzioni di output

OpzioneDescrizione
-vModalità verbose in cui vengono stampati più dettagli per il debugging.
-nhNessuna intestazione viene stampata nell'output.

Opzioni avanzate

Esempi di utilizzo

Utilizzo in Sandbox

Quando si utilizza Process Dump in una sandbox automatizzata o per la ricerca manuale antimalware, possono essere utili i seguenti passaggi. Assicurati di eseguire tutti i comandi come Amministratore in un ambiente pulito.

  • Costruisci il database di hash puliti: Esegui pd64.exe -db gen o per un processo più veloce e meno completo, usa pd64.exe -db genquick. A seconda della situazione, potresti voler fare uno snapshot della tua VM dopo aver creato questo database di hash puliti in modo che non debba essere ripetuto ogni volta.

  • Avvia il monitoraggio di terminazione di Process Dump: Mantieni pd64.exe -closemon in esecuzione in background. Scaricherà tutti i processi intermedi utilizzati dal malware.

  • Esegui il file malware: Monitora l'installazione del malware. pd64.exe scaricherà automaticamente qualsiasi processo che cerca di chiudersi.

  • Scarica il malware in esecuzione dalla memoria: Quando sei pronto, usa pd64.exe -system per scaricare tutti i processi.

I componenti scaricati si troveranno nella directory di lavoro di pd64.exe. Per cambiare il percorso di output, usa il flag -o.

Note sulla convenzione di denominazione dei moduli scaricati:

  • 'hiddemodule' nel nome del file al posto del nome del modulo indica che il modulo non era registrato correttamente nel processo.
  • 'codechunk' nel nome del file indica che si tratta di uno scaricamento ricostruito da una regione eseguibile libera. Questo può essere, ad esempio, codice iniettato che non aveva un'intestazione PE. I codechunk vengono scaricati due volte, una volta con un'intestazione x86 ricostruita e un'altra con un'intestazione x64 ricostruita.

Esempi di nomi di file scaricati:

  • notepad_exe_PID2990_hiddenmodule_16B8ABB0000_x86.dll
  • notepad_exe_PID3b5c_notepad.exe_7FF6E6630000_x64.exe
  • notepad_exe_PID2c54_codechunk_17BD0000_x86.dll
  • notepad_exe_PID2c54_codechunk_17BD0000_x64.dll

Cronologia delle versioni

Versione 2.1 (12 febbraio 2017)

  • Risolto un bug in cui l'ultima sezione in alcuni casi veniva riempita con zeri. Grazie a megastupidmonkey per aver segnalato questo problema.
  • Risolto un bug in cui gli indirizzi di base a 64 bit venivano troncati a un indirizzo a 32 bit. Ora mantiene correttamente l'indirizzo base completo del modulo a 64 bit. Grazie a megastupidmonkey per aver segnalato questo problema.
  • Risolto un problema per cui il monitoraggio di chiusura dello scaricamento dei processi causava un crash di csrss.exe.
  • Interrotto lo hooking del proprio processo da parte di Process Dump in modalità monitoraggio di chiusura.

Versione 2.0 (18 settembre 2016)

  • Aggiunto il nuovo flag '-closemon' che esegue Process Dump in modalità monitoraggio. Mette in pausa e scarica qualsiasi processo appena prima che si chiuda. Questo è progettato per funzionare bene con le sandbox di analisi malware, per essere sicuri di scaricare il malware dalla memoria prima che il processo dannoso si chiuda.
  • Aggiornato Process Dump per essere multi-thread. I comandi che scaricano o ottengono hash da più processi eseguiranno thread separati per operazione. Il numero predefinito di thread è 16, il che accelera significativamente l'elaborazione generale di Process Dump.
  • Aggiornato Process Dump per scaricare blocchi di codice non collegati trovati in memoria. Questi vengono identificati come regioni eseguibili in memoria che non sono collegate a un modulo e non hanno un'intestazione PE. Richiede inoltre che il codechunk faccia riferimento ad almeno 2 importazioni per essere considerato valido al fine di ridurre il rumore. Quando scaricato, viene ricreata un'intestazione PE insieme a una tabella delle importazioni. I codechunk sono completamente supportati dal database di hash puliti.
  • Aggiunti flag per controllare il percorso del file del database di hash puliti e la cartella di output per i file scaricati.
  • Correzione per la generazione del database di hash puliti dal percorso utente che causava un crash.
  • Correzione per il flag '-g' che forza la generazione di intestazioni PE. Prima, anche se questo flag era impostato, gli scaricamenti di sistema (-system) ignoravano questo flag quando scaricavano un processo.
  • Vari miglioramenti delle prestazioni.
  • Aggiornato il progetto a VS2015.

Versione 1.5 (21 novembre 2015)

  • Risolto un bug per cui regioni di memoria molto grandi causavano il blocco di Process Dump.
  • Risolto un bug per cui alcuni moduli ad indirizzi elevati non venivano trovati sotto Windows 64 bit.
  • Maggiori informazioni di debug ora visualizzate in modalità Verbose.

Versione 1.4 (18 aprile 2015)

  • Aggiunto un nuovo approccio aggressivo di ricostruzione delle importazioni. Ora corregge tutti i DWORD e QWORD nel modulo in modo che corrispondano all'esportazione corrispondente.
  • Aggiunto il flag '-a (indirizzo da scaricare)' per scaricare un indirizzo specifico. Genererà intestazioni PE e costruirà una tabella delle importazioni per l'indirizzo.
  • Aggiunto il flag '-ni' per saltare il nuovo algoritmo di ricostruzione delle importazioni.
  • Aggiunto il flag '-g' per forzare la generazione di una nuova intestazione PE anche se ne esiste già una quando si scarica un modulo. Questo è utile se l'intestazione PE è malformata, ad esempio.
  • Vari bug fix.

Versione 1.3 (10 ottobre 2013)

  • Migliorata la gestione delle intestazioni PE con sezioni che specificano dimensioni e indirizzi virtuali non validi.
  • Metodologia di scaricamento dei moduli migliorata per scaricare le sezioni virtuali nelle sezioni del disco.

Versione 1.1 (8 aprile 2013)

  • Risolto un problema di compatibilità con Windows XP.
  • Corretto un bug in cui Process Dump stampava di scaricare un modulo ma in realtà non lo scaricava.
  • Implementato il flag '-pid' per lo scaricamento.

Versione 1.0 (2 aprile 2013)

  • Rilascio iniziale.
Scarica lo strumento
OpzioneDescrizione
-systemScarica tutti i moduli non corrispondenti al database di hash puliti da tutti i processi accessibili nella directory di lavoro.
-pid <pid>Scarica tutti i moduli non corrispondenti al database di hash puliti dal PID specificato nella directory di lavoro corrente. Usa il prefisso '0x' per specificare un PID esadecimale.
-closemonEsegue in modalità monitoraggio. Quando un processo sta terminando, Process Dump lo scarica prima.
-p <regex nome processo>Scarica tutti i moduli non corrispondenti al database di hash puliti dal nome di processo che corrisponde al filtro nel PID specificato nella directory di lavoro corrente.
-a <indirizzo base modulo>Scarica un modulo all'indirizzo base specificato dal processo.
-o <percorso>Imposta la cartella di output predefinita per i componenti scaricati.
OpzioneDescrizione
-db genElabora automaticamente alcune cartelle comuni e tutti i processi attualmente in esecuzione, aggiungendo gli hash dei moduli trovati al database di hash puliti. Aggiunge ricorsivamente tutti i file in: %WINDIR%, %HOMEPATH%, C:\Program Files\, C:\Program Files (x86)\, e tutti i moduli in tutti i processi in esecuzione. Questi hash puliti vengono aggiunti al file clean.hashes nella directory dell'applicazione. Durante i successivi comandi di scaricamento, questi moduli noti non verranno scaricati. Si consiglia di eseguire questo comando una volta su un sistema pulito prima di utilizzare lo strumento, in modo da non scaricare troppi moduli dalla memoria.
-db genquickCome sopra, ma aggiunge solo gli hash di tutti i moduli in tutti i processi al database di hash puliti. Questo è un modo molto più veloce per costruire il database di hash puliti, ma sarà meno completo.
-db add <dir>Aggiunge ricorsivamente tutti i file nella directory specificata al database di hash puliti.
-db rem <dir>Rimuove ricorsivamente tutti i file nella directory specificata dal database di hash puliti.
-nrDisabilita la ricorsione sui comandi di aggiunta o rimozione di directory nel database di hash.
-db cleanCancella il database di hash puliti.
-db ignoreIgnora il database di hash puliti durante lo scaricamento di un processo questa volta. Tutti i moduli verranno scaricati anche se viene trovata una corrispondenza.
-cdb <percorso file>Percorso completo del file del database di hash puliti da utilizzare per questa esecuzione, se si desidera sovrascrivere il valore predefinito clean.hashes.
-edb <percorso file>Percorso completo del file del database di hash degli entrypoint da utilizzare per questa esecuzione.
-esdb <percorso file>Percorso completo del file del database di hash corti degli entrypoint da utilizzare per questa esecuzione.
OpzioneDescrizione
-gForza la generazione di intestazioni PE da zero, ignorando le intestazioni esistenti.
-eprecForza la ricostruzione del punto di ingresso, anche se ne esiste uno valido.
-niDisabilita la ricostruzione delle importazioni.
-ncDisabilita lo scaricamento delle regioni di codice libere.
-ntDisabilita il multi-threading.
-nepDisabilita l'hashing del punto di ingresso.
-t <numero thread>Imposta il numero di thread da utilizzare (predefinito 16).
ComandoDescrizione
pd64.exe -db genquickCostruisci rapidamente il database dei moduli puliti basato sui processi attualmente in esecuzione. Process Dump nelle attività successive scaricherà solo i moduli non riconosciuti.
pd64.exe -systemScarica tutti i moduli e i blocchi nascosti da tutti i processi ignorando i moduli puliti.
pd64.exe -closemonEsegue in modalità monitoraggio di terminazione. Scarica tutti i processi quando tentano di terminare.
pd64.exe -pid 0x18AScarica moduli e blocchi nascosti da un ID processo specifico.
pd64.exe -p .\*chrome.\*Scarica moduli e blocchi nascosti per nome del processo.
pd64.exe -db genCostruisci un database di hash puliti dei moduli noti. Viene utilizzato per evitare di scaricare moduli buoni noti nelle attività successive.
pd64.exe -pid 0x1a3 -a 0xffb4000Scarica il codice da un indirizzo specifico nel PID. Genererà due file per l'analisi, con intestazioni PE ricostruite a 32 e 64 bit: notepad_exe_x64_hidden_FFB40000.exe e notepad_exe_x86_hidden_FFB40000.exe.