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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
windbg-decompile-ext — Estensione WinDbg x64 che disassembla funzioni live e utilizza un LLM per produrre pseudocodice verificato. | Kitploit
Strumenti/GitHubGitHub/kernullist/windbg-decompile-ext
Analisi StaticaAnalisi Dinamica (Sandboxing)Analisi del CodiceReverse EngineeringDebuggerAnalisi MalwareAnalisi di BinariApprendimento e FormazioneReverse Engineering Assistito dall'IAAnalisi del FirmwareBinary Exploitation
11211643 mesi faRevisionato da Kitploit
GitHubkernullist/windbg-decompile-ext

windbg-decompile-ext

Estensione WinDbg x64 che disassembla funzioni live e utilizza un LLM per produrre pseudocodice verificato.

Vedi Repository

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

Windbg Decompile Extension via LLM

native decompile viewer

screenshot

Questo progetto è uno scheletro di estensione WinDbg per Windows x64 che risolve una funzione per nome o indirizzo, ricostruisce una vista deterministica del flusso di controllo e interroga direttamente un LLM dall'estensione per produrre pseudocodice.

Layout

  • src/extension: DLL dell'estensione WinDbg e comando !decomp.
  • src/shared: codice JSON, analizzatore, protocollo e verificatore condiviso dall'estensione.
  • scripts: helper per la build e la copia vendor.
  • third_party/dbgeng: copia opzionale vendored di dbgeng.h e dbgeng.lib.
  • third_party/zydis: albero sorgente Zydis stabile incluso in vendor, utilizzato per impostazione predefinita quando presente.

Current Scope

  • assunzioni esclusivamente x64
  • analisi della memoria live tramite DbgEng
  • disassembly strutturato basato su Zydis per un recupero stabile di mnemonici/operandi
  • recupero dell'intervallo di funzione tramite regione di simbolo, unwind ed euristiche
  • recupero in stile SSA-lite per argomenti di registro in ingresso, variabili locali in stack slot, candidati di merge e condizioni di branch normalizzate
  • fatti sui valori IR di basso livello con hint def-use, espressioni copia/costante canonizzate e marcatori di definizioni morte
  • fatti sullo stato dei valori a livello di blocco per le definizioni reaching live-in/live-out convergenti su registri e variabili locali di stack
  • fatti sulle regioni del flusso di controllo basati su dominatori per loop naturali, candidati if/else, candidati switch, metadati di induzione dei loop e metadati di range/default degli switch
  • fatti sull'ABI x64 per slot shadow/home, delta dello stack pointer, riconoscimento prologo/epilogo, chiamate no-return, tail call, thunk, candidati import-wrapper e argomenti di chiamata recuperati su registro/stack
  • recupero argomenti Microsoft x64 consapevole di SIMD/FP per xmm0-xmm3, con protezioni per lo zero-idiom vettoriale per evitare falsi argomenti in ingresso
  • hint di recupero dei tipi per valori di tipo puntatore, variabili locali di stack, offset di campo, array con indice scalato, confronti di tipo enum, test di bitflag e candidati vtable
  • fatti su idiomi e pattern di libreria per helper di memoria/stringhe, security cookie, stack probe, allocator, inizializzatori di aggregati e caricamenti RIP-relative di globali/import
  • fatti sui target di chiamata per chiamate dirette, chiamate indirette via registro/memoria, candidati virtual-call/vtable-offset, tipo di ritorno, modello dei parametri, effetti collaterali, effetti sulla memoria, hint di ownership e confidenza
  • fatti di offuscamento in stile OLLVM per dispatcher di control-flow flattening, edge semantici recuperati, edge morti da predicati opachi e idiomi di sostituzione scalare di istruzioni
  • fatti di prontezza alla deoffuscazione più il controllo /deobf:on|off su se i fatti di offuscamento recuperati possono guidare la riscrittura in pseudo-C
  • fatti del grafo delle evidenze che collegano fatti ad alto segnale dell'analizzatore, PDB e comportamento osservato al grounding su istruzioni/blocchi
  • prompting refine-first con uno scheletro di pseudocodice generato dall'analizzatore, riepiloghi consapevoli del grafo per regioni CFG, condizioni e blocchi importanti, selezione classificata dei fatti ad alto segnale e campionamento distribuito per insiemi di fatti di grandi dimensioni
  • collegamenti DML di WinDbg per la navigazione verso entry/basic-block/evidence/call-target quando la callback di output supporta DML
  • modalità di risultato separate per output breve, spiegazione delle evidenze, solo fatti, prompt di debug, JSON e stile data-model
  • switch di correzione utente per hint no-return, tipo, campo e rinomina
  • fatti di policy di analisi consapevoli della sessione per sessioni live, dump, kernel e simil-TTD
  • fatti sul comportamento osservato dal contesto corrente del debugger, inclusi campioni di argomenti di registro, hotspot di memoria e suggerimenti di query TTD quando disponibili
  • classificazione RIP-relative di stringhe/globali/IAT e hint di firma del target di chiamata per il prompting LLM
  • hint per il prompting LLM consapevoli del PDB caricato: prototipo, parametri/locali con scope, campo, enum e righe sorgente
  • chiamate LLM dirette in-process dall'estensione
  • adattatore HTTP compatibile con OpenAI o fallback mock deterministico
  • passaggio di verifica sull'output LLM

WinDbg Usage

Caricare l'estensione dall'output di build, quindi eseguire !decomp su un simbolo o un indirizzo:```text .load C:\path\to\decomp.dll !decomp /doctor !decomp module!FunctionName !decomp 0x7ffb`12345678

Usa `/doctor` quando la configurazione sembra sbagliata o prima di abilitare un provider LLM:```text
!decomp /doctor
!decomp /doctor:net
  • /doctor non richiede un target e non chiama il provider. Riporta il percorso di configurazione/stato di caricamento, il riepilogo di provider/modello/endpoint, la presenza di autenticazione senza segreti, le impostazioni di timeout/token/chunking, il supporto DML, la classe/qualificatore di sessione, il tipo di processore e le avvertenze relative al PDB.
  • /doctor:net è accettato come richiesta esplicita di verifica di rete, ma attualmente segnala che il ping del provider viene saltato. L'estensione non esegue un probe di rete dalla modalità doctor.
  • I valori segreti come chiavi API, token bearer, token di refresh e stringhe di query URL non vengono stampati.

I target possono essere simboli pubblici/privati, nomi di funzioni esportate o indirizzi. Se il target risolve a un indirizzo all'interno di una funzione, l'estensione tenta di recuperare l'intervallo della funzione contenente da simboli, dati di unwind ed euristiche del flusso di controllo. Metti tra virgolette i target che contengono spazi:```text !decomp "my module!Function With Spaces"

Il percorso del comando normale esegue l'analisi locale, costruisce i fatti dell'analizzatore, chiama facoltativamente l'endpoint LLM configurato, verifica la risposta rispetto alle prove recuperate e stampa pseudo-C più confidenza, avvisi e note di incertezza:```text
!decomp ntdll!RtlAllocateHeap
!decomp kernel32!Sleep
!decomp game.exe!CheckIntegrity

L'output normale, brief e explain include un flusso di avanzamento compatto anche senza /verbose. Le esecuzioni LLM lunghe mostrano il completamento dell'analisi locale, l'avanzamento dei chunk, gli avvisi di retry, l'inizio del merge, la verifica e il suggerimento di annullamento con Ctrl+Break. Le modalità leggibili dalla macchina, come /view:json, /view:facts, /view:prompt e /view:data, sopprimono le righe di avanzamento e i link helper DML, così che gli script ricevano solo il payload richiesto.

Scarica lo strumento