Blackbone
Bibliothèque de hacking mémoire Windows
Fonctionnalités
- Prise en charge x86 et x64
Interaction avec les processus
- Gérer PEB32/PEB64
- Gérer les processus à travers la barrière WOW64
Mémoire des processus
- Allouer et libérer de la mémoire virtuelle
- Modifier la protection mémoire
- Lire/Écrire la mémoire virtuelle
Modules des processus
- Énumérer tous les modules chargés (32/64 bits). Énumérer les modules en utilisant les méthodes de liste du chargeur, objets de section, en-têtes PE.
- Obtenir l'adresse d'une fonction exportée
- Obtenir le module principal
- Dissocier un module des listes du chargeur
- Injecter et éjecter des modules (y compris les images IL pures)
- Injecter des modules 64 bits dans des processus WOW64
- Mapper manuellement des images PE natives
Threads
- Énumérer les threads
- Créer et terminer des threads. Prise en charge de la création de threads inter-sessions.
- Obtenir le code de sortie d'un thread
- Obtenir le thread principal
- Gérer TEB32/TEB64
- Attendre la fin d'un thread
- Suspendre et reprendre des threads
- Définir/Supprimer des points d'arrêt matériels
Recherche de motifs
- Rechercher un motif arbitraire dans un processus local ou distant
Exécution de code à distance
- Exécuter des fonctions dans un processus distant
- Assembler son propre code et l'exécuter à distance
- Prise en charge des conventions cdecl/stdcall/thiscall/fastcall
- Prise en charge des arguments passés par valeur, pointeur ou référence, y compris les structures
- Les types FPU sont pris en charge
- Exécuter du code dans un nouveau thread ou un thread existant
Hooking à distance
- Hooker des fonctions dans un processus distant en utilisant int3 ou des points d'arrêt matériels
- Hooker des fonctions lors du retour
Fonctionnalités du map manuel
- Prise en charge des images x86 et x64
- Mappage dans tout processus non protégé
- Mappage de sections avec les bons indicateurs de protection mémoire
- Relocalisations d'images (seulement 2 types pris en charge. Je n'ai jamais vu d'image PE avec d'autres types de relocalisation)
- Les importations et importations différées sont résolues
- L'import lié est résolu comme effet secondaire, je pense
- Exportations de modules
- Chargement des images d'exportations transférées
- Redirection de nom de schéma d'API
- Redirection et isolation SxS
- Prise en charge du contexte d'activation
- Résolution du chemin des DLL similaire à l'ordre de chargement natif
- Callbacks TLS. Uniquement pour un thread et seulement avec les raisons PROCESS_ATTACH/PROCESS_DETACH.
- TLS statique
- Prise en charge de la gestion des exceptions (SEH et C++)
- Ajout d'un module à certaines structures du chargeur natif (pour la prise en charge de base des API de module : GetModuleHandle, GetProcAddress, etc.)
- Initialisation du cookie de sécurité
- Les images C++/CLI sont prises en charge
- Déchargement d'image
- Augmenter le compteur de référence pour les bibliothèques d'importation en cas de mappage d'importation manuel
- Les dépendances cycliques sont gérées correctement
Fonctionnalités du driver
- Allouer/libérer/protéger la mémoire utilisateur
- Lire/écrire la mémoire utilisateur et noyau
- Désactiver le DEP permanent pour les processus WOW64
- Modifier le drapeau de protection du processus
- Modifier les droits d'accès des handles
- Remapper la mémoire du processus
- Cacher la mémoire allouée en mode utilisateur
- Injection de DLL en mode utilisateur et mappage manuel
- Mappage manuel de drivers
Prérequis
- Visual Studio 2017 15.7 ou supérieur
- Windows SDK 10.0.17134 ou supérieur
- WDK 10.0.17134 ou supérieur (driver uniquement)
- Bibliothèques VC++ 2017 pour Spectre (x86 et x64)
- Visual C++ ATL (x86/x64) avec atténuations Spectre
Licence
Blackbone est sous licence MIT. Les dépendances sont sous leurs licences respectives.
