Blackbone
Libreria di hacking della memoria di Windows
Caratteristiche
Interazione con i processi
- Gestire PEB32/PEB64
- Gestire il processo attraverso la barriera WOW64
Memoria del processo
- Allocare e liberare memoria virtuale
- Modificare la protezione della memoria
- Leggere/Scrivere memoria virtuale
Moduli del processo
- Elencare tutti i moduli caricati (32/64 bit). Elencare moduli usando i metodi Loader list/Section objects/PE headers.
- Ottenere l'indirizzo della funzione esportata
- Ottenere il modulo principale
- Scollegare il modulo dalle liste del loader
- Iniettare e espellere moduli (incluse immagini IL pure)
- Iniettare moduli a 64 bit in processi WOW64
- Mappare manualmente immagini PE native
Thread
- Elencare i thread
- Creare e terminare thread. Supporto per la creazione di thread tra sessioni.
- Ottenere il codice di uscita del thread
- Ottenere il thread principale
- Gestire TEB32/TEB64
- Unirsi ai thread
- Sospendere e riprendere i thread
- Impostare/Rimuovere breakpoint hardware
Ricerca di pattern
- Cercare pattern arbitrari nel processo locale o remoto
Esecuzione di codice remoto
- Eseguire funzioni in un processo remoto
- Assembla il proprio codice ed eseguilo da remoto
- Supporto per convenzioni cdecl/stdcall/thiscall/fastcall
- Supporto per argomenti passati per valore, puntatore o riferimento, incluse strutture
- I tipi FPU sono supportati
- Eseguire codice in un nuovo thread o in uno esistente
Hooking remoto
- Agganciare funzioni in un processo remoto usando int3 o breakpoint hardware
- Agganciare funzioni al ritorno
Caratteristiche del mapping manuale
- Supporto immagini x86 e x64
- Mappatura in qualsiasi processo arbitrario non protetto
- Mappatura delle sezioni con flag di protezione della memoria appropriati
- Rilocazioni dell'immagine (solo 2 tipi supportati. Non ho mai visto un'immagine PE con altri tipi di rilocazione)
- Import e Import ritardati sono risolti
- L'import vincolato è risolto come effetto collaterale, credo
- Esportazioni del modulo
- Caricamento di immagini di esportazione inoltrate
- Reindirizzamento del nome dello schema API
- Reindirizzamento e isolamento SxS
- Supporto del contesto di attivazione
- Risoluzione del percorso della DLL simile all'ordine di caricamento nativo
- Callback TLS. Solo per un thread e solo con motivi PROCESS_ATTACH/PROCESS_DETACH.
- TLS statico
- Supporto per la gestione delle eccezioni (SEH e C++)
- Aggiunta del modulo ad alcune strutture del loader nativo (per supporto API di base del modulo: GetModuleHandle, GetProcAddress, ecc.)
- Inizializzazione del cookie di sicurezza
- Le immagini C++/CLI sono supportate
- Scaricamento dell'immagine
- Incrementare il contatore di riferimento per le librerie di importazione in caso di mappatura manuale degli import
- Le dipendenze cicliche sono gestite correttamente
Caratteristiche del driver
- Allocare/liberare/proteggere la memoria utente
- Leggere/scrivere memoria utente e kernel
- Disabilitare DEP permanente per i processi WOW64
- Modificare il flag di protezione del processo
- Modificare i diritti di accesso dell'handle
- Rimappare la memoria del processo
- Nascondere la memoria allocata in modalità utente
- Iniezione di DLL in modalità utente e mapping manuale
- Mapping manuale dei driver
Requisiti
- Visual Studio 2017 15.7 o superiore
- Windows SDK 10.0.17134 o superiore
- WDK 10.0.17134 o superiore (solo driver)
- Librerie VC++ 2017 per Spectre (x86 e x64)
- Visual C++ ATL (x86/x64) con mitigazioni Spectre
Licenza
Blackbone è concesso in licenza secondo i termini della MIT License. Le dipendenze sono soggette alle rispettive licenze.
