Blackbone
Windows-Speicher-Hacking-Bibliothek
Funktionen
- x86- und x64-Unterstützung
Prozessinteraktion
- Verwalten von PEB32/PEB64
- Prozess über die WOW64-Barriere verwalten
Prozessspeicher
- Virtuellen Speicher reservieren und freigeben
- Speicherschutz ändern
- Virtuellen Speicher lesen/schreiben
Prozessmodule
- Alle geladenen (32/64-Bit) Module aufzählen. Module mit den Methoden Loader-Liste/Section-Objekte/PE-Header aufzählen.
- Adresse exportierter Funktionen abrufen
- Hauptmodul abrufen
- Modul aus Laderlisten entfernen
- Module injizieren und auswerfen (einschließlich reiner IL-Images)
- 64-Bit-Module in WOW64-Prozesse injizieren
- Native PE-Images manuell mappen
Threads
- Threads aufzählen
- Threads erstellen und beenden. Unterstützung für threadsitzungsübergreifende Threaderstellung.
- Thread-Exit-Code abrufen
- Hauptthread abrufen
- TEB32/TEB64 verwalten
- Auf Threads warten (Join)
- Threads anhalten und fortsetzen
- Hardware-Breakpoints setzen/entfernen
Mustersuche
- Beliebiges Muster in lokalem oder entferntem Prozess suchen
Remote-Codeausführung
- Funktionen in entferntem Prozess ausführen
- Eigenen Code assemblieren und remote ausführen
- Unterstützung für cdecl/stdcall/thiscall/fastcall-Konventionen
- Unterstützung für Argumente, die per Wert, Zeiger oder Referenz übergeben werden, einschließlich Strukturen
- FPU-Typen werden unterstützt
- Code in neuem Thread oder einem beliebigen vorhandenen ausführen
Remote-Hooking
- Funktionen in entferntem Prozess mit int3 oder Hardware-Breakpoints hooken
- Funktionen bei Rückkehr hooken
Manuelle Map-Funktionen
- x86- und x64-Image-Unterstützung
- Mapping in einen beliebigen ungeschützten Prozess
- Abschnitts-Mapping mit korrekten Speicherschutz-Flags
- Image-Relocation (nur 2 Typen unterstützt. Ich habe noch kein PE-Image mit anderen Relocation-Typen gesehen)
- Importe und verzögerte Importe werden aufgelöst
- Gebundener Import wird als Nebeneffekt aufgelöst, denke ich
- Modul-Exporte
- Laden von weitergeleiteten Export-Images
- API-Schema-Namensumleitung
- SxS-Umleitung und Isolation
- Aktivierungskontext-Unterstützung
- DLL-Pfadauflösung ähnlich der nativen Lader-Reihenfolge
- TLS-Callbacks. Nur für einen Thread und nur mit PROCESS_ATTACH/PROCESS_DETACH-Gründen.
- Statisches TLS
- Ausnahmebehandlungsunterstützung (SEH und C++)
- Modul zu einigen nativen Laderstrukturen hinzufügen (für grundlegende Modul-API-Unterstützung: GetModuleHandle, GetProcAdress usw.)
- Security-Cookie-Initialisierung
- C++/CLI-Images werden unterstützt
- Image entladen
- Referenzzähler für Importbibliotheken bei manuellem Import-Mapping erhöhen
- Zyklische Abhängigkeiten werden korrekt behandelt
Treiberfunktionen
- Benutzerspeicher reservieren/freigeben/schützen
- Benutzer- und Kernel-Speicher lesen/schreiben
- Permanente DEP für WOW64-Prozesse deaktivieren
- Prozessschutz-Flag ändern
- Handle-Zugriffsrechte ändern
- Prozessspeicher neu mappen
- Allozierten Benutzermodusspeicher verstecken
- Benutzermodus-DLL-Injektion und manuelles Mapping
- Manuelles Mapping von Treibern
Anforderungen
- Visual Studio 2017 15.7 oder höher
- Windows SDK 10.0.17134 oder höher
- WDK 10.0.17134 oder höher (nur Treiber)
- VC++ 2017 Libs für Spectre (x86 und x64)
- Visual C++ ATL (x86/x64) mit Spectre-Mitigationen
Lizenz
Blackbone ist unter der MIT-Lizenz lizenziert. Abhängigkeiten unterliegen ihren jeweiligen Lizenzen.
