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
ProcDump-for-Linux — Una versione per Linux dello strumento Sysinternals ProcDump | Kitploit
Strumenti/GitHubGitHub/microsoft/procdump-for-linux
Analisi Dinamica (Sandboxing)Memory ForensicsDebuggerAnalisi MalwareRisposta agli Incidenti
GitHubmicrosoft/procdump-for-linux

ProcDump-for-Linux

Una versione per Linux dello strumento Sysinternals ProcDump

Vedi Repository
3.1k3266712 giorni 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
# ProcDump [![Build Status](https://dev.azure.com/sysinternals/Tools/_apis/build/status/Sysinternals.ProcDump-for-Linux?branchName=master)](https://dev.azure.com/sysinternals/Tools/_build/latest?definitionId=341&branchName=master)
ProcDump è una reimmaginazione per Linux e Mac del classico strumento ProcDump della suite Sysinternals per Windows. ProcDump offre un modo conveniente per gli sviluppatori Linux e Mac di creare core dump delle loro applicazioni basati su trigger di performance. ProcDump per Linux e Mac fa parte di [Sysinternals](https://sysinternals.com).

![ProcDump in uso](https://assets.kitploit.com/production/public/readmes/1584/273234fe53dbe4139a6d977f02b323255904a02de480dc6c1cb6eb905df3088f.gif "ProcDump in uso")

# Installazione e Utilizzo

## Requisiti
* Sistema operativo Linux minimo:
  * Red Hat Enterprise Linux / CentOS 7
  * Fedora 29
  * Ubuntu 16.04 LTS
  * `gdb` >= 7.6.1
* Mac OS minimo: Sierra
 
## Installare ProcDump
Si prega di vedere le istruzioni di installazione [qui](https://github.com/microsoft/procdump-for-linux/blob/master/INSTALL.md).

## Compilare
Si prega di vedere le istruzioni di compilazione [qui](https://github.com/microsoft/procdump-for-linux/blob/master/BUILD.md).

## Utilizzo
**MODIFICA SOSTANZIALE** Con il rilascio di ProcDump 1.3, gli switch sono ora allineati con la versione Windows di ProcDump.
Si noti che la versione [Mac](https://github.com/microsoft/ProcDump-for-Mac) attualmente ha un insieme limitato di trigger.
```
Capture Usage:
   procdump [-n Count]
            [-s Seconds]
            [-c|-cl CPU_Usage]
            [-m|-ml Commit_Usage1[,Commit_Usage2...]]
            [-gcm [<GCGeneration>: | LOH: | POH:]Memory_Usage1[,Memory_Usage2...]]
            [-gcgen Generation]
            [-restrack [nodump]]
            [-sr Sample_Rate]
            [-tc Thread_Threshold]
            [-fc FileDescriptor_Threshold]
            [-sig Signal_Number1[,Signal_Number2...]]
            [-e]
            [-f Include_Filter,...]
            [-fx Exclude_Filter]
            [-mc Custom_Dump_Mask]
            [-pf Polling_Frequency]
            [-o]
            [-log syslog|stdout]
            {
             {{[-w] Process_Name | [-pgid] PID} [Dump_File | Dump_Folder]}
            }

Options:
   -n      Number of dumps to write before exiting.
   -s      Consecutive seconds before dump is written (default is 10).
   -c      CPU threshold above which to create a dump of the process.
   -cl     CPU threshold below which to create a dump of the process.
   -m      Memory commit threshold(s) (MB) above which to create dumps.
   -ml     Memory commit threshold(s) (MB) below which to create dumps.
   -gcm    [.NET] GC memory threshold(s) (MB) above which to create dumps for the specified generation or heap (default is total .NET memory usage).
   -gcgen  [.NET] Create dump when the garbage collection of the specified generation starts and finishes.
   -restrack Enable memory leak tracking (malloc family of APIs). If used without other triggers, use 't' to manually capture a restrack report. When used with other triggers, the 'nodump' option can be used to prevent dump generation and only produce restrack report(s).
   -sr     Sample rate when using -restrack.
   -tc     Thread count threshold above which to create a dump of the process.
   -fc     File descriptor count threshold above which to create a dump of the process.
   -sig    Comma separated list of signal number(s) during which any signal results in a dump of the process.
   -e      [.NET] Create dump when the process encounters an exception.
   -f      Filter (include) on the content of .NET exceptions (comma separated). Wildcards (*) are supported.
   -fx     Filter (exclude) on the content of -restrack call stacks. Wildcards (*) are supported.
   -mc     Custom core dump mask (in hex) indicating what memory should be included in the core dump. Please see 'man core' (/proc/[pid]/coredump_filter) for available options.
   -pf     Polling frequency.
   -o      Overwrite existing dump file.
   -log    Writes extended ProcDump tracing to the specified output stream (syslog or stdout).
   -w      Wait for the specified process to launch if it's not running.
   -pgid   Process ID specified refers to a process group ID.
```
### Rilevamento delle risorse
Lo switch -restrack attiva il rilevamento delle risorse, consentendo il monitoraggio e la segnalazione di qualsiasi allocazione di risorse che non è stata liberata al momento della generazione del core dump. I risultati vengono salvati in un file con estensione '.restrack'. Attualmente, vengono tracciate le seguenti funzioni di allocazione/deallocazione delle risorse:

Allocazione:
* malloc
* calloc
* realloc
* reallocarray
* mmap

Deallocazione:
* free
* munmap

La versione Mac attualmente non implementa il rilevamento delle risorse.

### Esempi
> I seguenti esempi hanno tutti come target un processo con pid == 1234

Il seguente creerà un core dump immediatamente.
```
sudo procdump 1234
```
Il seguente creerà 3 core dump a distanza di 10 secondi.
```
sudo procdump -n 3 1234
```
Il seguente creerà 3 core dump a distanza di 5 secondi.
```
sudo procdump -n 3 -s 5 1234
```
Il seguente creerà un core dump ogni volta che l'utilizzo della CPU del processo è >= 65%, fino a 3 volte, con almeno 10 secondi tra ogni dump.
```
sudo procdump -c 65 -n 3 1234
```
Il seguente creerà un core dump ogni volta che l'utilizzo della CPU del processo è >= 65%, fino a 3 volte, con almeno 5 secondi tra ogni dump.
```
sudo procdump -c 65 -n 3 -s 5 1234
```
Il seguente creerà un core dump quando l'utilizzo della CPU è al di fuori dell'intervallo [10,65].
```
sudo procdump -cl 10 -c 65 1234
```
Il seguente creerà un core dump quando l'utilizzo della CPU è >= 65% o l'utilizzo della memoria è >= 100 MB.
```
sudo procdump -c 65 -m 100 1234
```
Il seguente creerà un core dump quando l'utilizzo della memoria è >= 100 MB seguito da un altro dump quando l'utilizzo della memoria è >= 200 MB.
```
sudo procdump -m 100,200 1234
```
Il seguente creerà un report di memory leak (nessun dump) ogni volta che l'utente preme 't':
```
sudo procdump -restrack 1234
```
Il seguente creerà 3 report di memory leak (nessun dump) a distanza di 5 secondi:
```
sudo procdump -n 3 -s 5 -restrack nodump 1234
```
Il seguente creerà un core dump e un report di memory leak quando l'utilizzo della memoria è >= 100 MB
```
sudo procdump -m 100 -restrack 1234
```
Il seguente creerà un report di memory leak (nessun dump) quando l'utilizzo della memoria è >= 100 MB
```
sudo procdump -m 100 -restrack nodump 1234
```
Il seguente creerà un core dump e un report di memory leak quando l'utilizzo della memoria è >= 100 MB campionando ogni decima allocazione di memoria.
```
sudo procdump -m 100 -restrack -sr 10 1234
```
Il seguente creerà un core dump e un report di memory leak quando l'utilizzo della memoria è >= 100 MB ed esclude tutti gli stack di chiamate che contengono frame con la stringa "cache"
```
sudo procdump -m 100 -restrack -fx *cache* 1234
```
Il seguente creerà un core dump quando l'utilizzo totale della memoria .NET è >= 100 MB seguito da un altro dump quando l'utilizzo della memoria è >= 200 MB.
```
sudo procdump -gcm 100,200 1234
```
Il seguente creerà un core dump quando l'utilizzo della memoria .NET per la generazione 1 è >= 1 MB seguito da un altro dump quando l'utilizzo della memoria è >= 2 MB.
```
sudo procdump -gcm 1:1,2 1234
```
Il seguente creerà un core dump quando l'utilizzo della memoria .NET Large Object Heap è >= 100 MB seguito da un altro dump quando l'utilizzo della memoria è >= 200 MB.
```
sudo procdump -gcm LOH:100,200 1234
```
Il seguente creerà un core dump all'inizio e alla fine di una garbage collection della generazione 1 .NET.
```
sudo procdump -gcgen 1
```
Il seguente creerà un core dump immediatamente nella directory `/tmp`.
```
sudo procdump 1234 /tmp
```
Il seguente creerà un core dump nella directory corrente con il nome dump_0.1234. Se viene usato -n, i file saranno nominati dump_0.1234, dump_1.1234 e così via.
```
sudo procdump 1234 dump
```
Il seguente creerà un core dump quando si verifica un SIGSEGV.
```
sudo procdump -sig 11 1234
```
Il seguente creerà un core dump quando si verifica un SIGSEGV in cui il core dump contiene solo mapping privati anonimi.
```
sudo procdump -mc 1 -sig 11 1234
```
Il seguente creerà un core dump quando l'applicazione .NET di destinazione lancia una System.InvalidOperationException
```
sudo procdump -e -f System.InvalidOperationException 1234
```
Il filtro di inclusione supporta la corrispondenza parziale e con wildcard, quindi anche il seguente creerà un core dump per una System.InvalidOperationException
```
sudo procdump -e -f InvalidOperation 1234
```
oppure
```
sudo procdump -e -f "*Invali*Operation*" 1234
```
> Tutte le opzioni possono anche essere usate con `-w`, per attendere qualsiasi processo con il nome specificato.

Il seguente attende un processo chiamato `my_application` e crea un core dump immediatamente quando viene trovato.
```
sudo procdump -w my_application
```

## Limitazioni attuali
* Attualmente funziona solo su Linux Kernel versione 3.5+ o macOS Sierra+.
* Non ha piena parità di funzionalità con la versione Windows di ProcDump, in particolare la funzionalità stay alive e i contatori di prestazioni personalizzati

# Feedback
* Fai una domanda su StackOverflow (tagga con ProcDumpForLinux)
* Richiedi una nuova funzionalità su GitHub
* Vota per le richieste di funzionalità più popolari
* Segnala un bug su GitHub Issues

# Contribuire
Se sei interessato a risolvere problemi e contribuire direttamente al codice, consulta il [documento Come contribuire](https://github.com/microsoft/procdump-for-linux/blob/master/CONTRIBUTING.md), che copre quanto segue:
* Come compilare ed eseguire dal sorgente
* Il flusso di lavoro di sviluppo, inclusi debug ed esecuzione di test
* Linee guida per la codifica
* Invio di pull request

Consulta anche il nostro [Codice di condotta](https://github.com/microsoft/procdump-for-linux/blob/master/CODE_OF_CONDUCT.md).


# Licenza
Copyright (c) Microsoft Corporation. Tutti i diritti riservati.

Concesso in licenza secondo i termini della MIT License.

ProcDump per Linux:
* Clona, compila e collega staticamente libbpf (https://github.com/libbpf/libbpf)
* Copia il codice sorgente per la risoluzione dei simboli da BCC (https://github.com/iovisor/bcc).
* Usa eBPF
Scarica lo strumento