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
Shinigami — Uno strumento di unpacking dinamico | Kitploit
Strumenti/GitHubGitHub/buzzer-re/shinigami
Analisi Dinamica (Sandboxing)Reverse EngineeringShellcodeAnalisi MalwareAnalisi di Binari
GitHubbuzzer-re/shinigami

Shinigami

Uno strumento di unpacking dinamico

Vedi Repository
1521262 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

Shinigami

Build Release

descrizione dell'immagine

Shinigami è uno strumento sperimentale progettato per rilevare ed estrarre gli impianti malware che vengono iniettati tramite process hollowing o routine generiche di packer.

Come funziona

Lo strumento opera agganciando (hook) le funzioni NT correlate al Process Hollowing e marcando le pagine di memoria appena rese eseguibili con il bit di guardia (page guard). Questa tecnica consente a Shinigami di rilevare cambi di flusso indiretti, tipicamente causati da shellcode o codice decompresso, che sono spesso indicativi di malware. Shinigami crea l'eseguibile target in uno stato sospeso e inietta una libreria DLL chiamata "Ichigo". Questa libreria aggancia automaticamente tutte le funzioni necessarie per rilevare ed estrarre l'impianto. Una volta che l'artefatto è stato completamente estratto, lo strumento termina il processo.

L'efficacia di Shinigami può variare a seconda del malware specifico che sta prendendo di mira. Tuttavia, è una preziosa aggiunta a qualsiasi toolkit di analisi malware e può rivelarsi utile per rilevare e analizzare malware che utilizzano process hollowing o routine generiche di packing.

Importante: Questo è uno strumento di unpacking dinamico e non dovrebbe essere eseguito sulla tua macchina personale o in un laboratorio di analisi statica

Metodi di unpacking attuali

Process Hollowing

Il metodo principale di Shinigami per estrarre gli impianti iniettati tramite process hollowing prevede l'hooking di due funzioni NT: NtResumeThread e NtWriteVirtualMemory. Ecco come funziona:

  • Hook di NtResumeThread

    • Shinigami cerca in tutta la memoria precedentemente allocata tramite NtAllocateVirtualMemory per verificare se contiene la firma dell'header DOS. Se la trova, estrae il file PE remoto, lo corregge (patch) per allineare le sezioni e lo salva su disco con il formato filename_dumped.bin.
  • Hook di NtWriteVirtualMemory

    • Shinigami rileva se l'eseguibile sta tentando di scrivere un file PE nel processo remoto agganciando NtWriteVirtualMemory. Se viene trovato un file PE, viene estratto usando il puntatore Buffer e salvato su disco come filename_before_written.bin; questa opzione viene utilizzata solo se viene passato il flag --stop-at-write.

Unpacker generico

Il modulo unpacker generico di Shinigami marca le aree di memoria appena allocate con il bit PAGE_GUARD; applica inoltre questo bit se un'area di memoria esistente ha le proprie protezioni sostituite con qualcosa di eseguibile. Utilizzando le guard page, può tenere traccia di quale area di memoria verrà utilizzata per allocare shellcode o immagini PE.

Per ogni shellcode rilevato, Shinigami salva su disco lo shellcode grezzo stesso. Scansiona inoltre quella regione di memoria per trovare eventuali file PE e li salva. Shinigami tratta ogni esecuzione di shellcode diversa come un nuovo stadio, quindi alla fine avrai nella tua directory di lavoro file chiamati filename_shellcode_STAGENUM.bin or .exe.

Utilizzo

Lo strumento ha alcune opzioni:

root@kitploit:~
Usage: Shinigami [--help] [--version] [--output VAR] [--stop-at-write] [--verbose] [--only-executables] [--exported VAR] program_name

Positional arguments:
  program_name                  Name of the program to execute

Optional arguments:
  -h, --help                    shows help message and exits
  -v, --version                 prints version information and exits
  -o, --output                  Directory to dump artefacts
  --stop-at-write               Unhollow: Stop the execution when the PE file is being to be written
  --verbose                     Display a verbose output
  -p, --only-executables        Only extract PE artefacts
  -e, --exported                Exported Function: Choose a exported function to execute if the target is a DLL (rundll will be used)

Alcune opzioni importanti sono:

-o, --output: Specifica la directory in cui salvare gli artefatti estratti. Di default, gli artefatti estratti verranno salvati in una directory chiamata output nella directory di lavoro corrente. Puoi specificare una directory diversa passando il suo percorso come argomento.

--stop-at-write: Questo argomento viene utilizzato durante l'unpacking di un processo svuotato (hollowed). Quando Shinigami rileva che il file PE sta per essere scritto nel processo svuotato, interrompe l'esecuzione e salva il file PE estratto. Questa opzione può essere utile se vuoi evitare di eseguire l'intero processo svuotato e devi solo estrarre il codice decompresso.

--verbose: Mostra un output dettagliato. Può essere utile per il debug o per comprendere il funzionamento interno di Shinigami.

Esempio di utilizzo:

Unhollow

Test contro Dridex

Dopo l'estrazione, il processo viene terminato e avrai (spero) il PE estratto:

Impianto dumpato

L'impianto rilevato verrà dumpato seguendo il formato descritto nella sezione metodi di rilevamento

Unpacking

Unpacking di un loader generico descritto qui

Nell'esempio sopra, Shinigami ha rilevato automaticamente il comportamento di un loader generico ed ha estratto tutti gli shellcode e le immagini eseguiti al suo interno, senza richiedere opzioni specifiche per abilitare o disabilitare la routine di unpacking. Questo è stato possibile perché Shinigami condivide alcune funzioni con il modulo unhollow, utilizzando hook condivisi forniti dalla libreria Gancho.

Emotet

Unpacking della DLL di Emotet

Shinigami supporta anche le DLL e ha la capacità di ricostruire binari iniettati utilizzando header DOS staccati. In particolare, campioni di malware come Emotet usano questa tecnica per eludere gli scanner PE in memoria. Shinigami rileva queste parti mancanti (header DOS) e impiega euristiche per ricostruirle.

Installazione

Scarica la tua versione preferita dalla pagina Release.

Compilazione e hacking

Sarebbe fantastico se aiutassi questo progetto, quindi se vuoi, ecco le dipendenze e i passaggi:

  • Installa Visual Studio >= 2019 con il workload C++.
  • Installa Zydis, un disassembler x86/x86-64 veloce e leggero. Consiglio di usare il metodo vcpkg.
    • Zydis viene utilizzato per rendere l'hooking delle API più preciso e per garantire che nessun opcode venga perso durante la copia.
  • Apri il file di soluzione Shinigami.sln in Visual Studio e compila/modifica il progetto.

Apri una issue o una pull request per qualsiasi modifica desideri apportare.

Conclusione

Questa fantastica immagine mascotte è ispirata a Bleach ed è stata generata da Dall-E.

Scarica lo strumento