Blackbone
Biblioteca de hacking de memoria de Windows
Características
- Compatibilidad con x86 y x64
Interacción con procesos
- Gestionar PEB32/PEB64
- Gestionar procesos a través de la barrera WOW64
Memoria de procesos
- Asignar y liberar memoria virtual
- Cambiar la protección de memoria
- Leer/Escribir memoria virtual
Módulos de procesos
- Enumerar todos los módulos cargados (32/64 bits). Enumerar módulos usando la lista de cargador/objetos de sección/métodos de cabeceras PE.
- Obtener la dirección de una función exportada
- Obtener el módulo principal
- Desvincular módulo de las listas del cargador
- Inyectar y expulsar módulos (incluyendo imágenes IL puras)
- Inyectar módulos de 64 bits en procesos WOW64
- Mapear manualmente imágenes PE nativas
Hilos
- Enumerar hilos
- Crear y terminar hilos. Soporte para creación de hilos entre sesiones.
- Obtener código de salida del hilo
- Obtener hilo principal
- Gestionar TEB32/TEB64
- Unir hilos
- Suspender y reanudar hilos
- Establecer/Eliminar puntos de interrupción de hardware
Búsqueda de patrones
- Buscar un patrón arbitrario en un proceso local o remoto
Ejecución remota de código
- Ejecutar funciones en un proceso remoto
- Ensamblar código propio y ejecutarlo remotamente
- Soporte para convenciones cdecl/stdcall/thiscall/fastcall
- Soporte para argumentos pasados por valor, puntero o referencia, incluyendo estructuras
- Los tipos FPU son compatibles
- Ejecutar código en un nuevo hilo o en cualquier hilo existente
Enganche remoto
- Enganchar funciones en un proceso remoto usando int3 o puntos de interrupción de hardware
- Enganchar funciones al retorno
Características de mapeo manual
- Soporte para imágenes x86 y x64
- Mapeo en cualquier proceso desprotegido arbitrario
- Mapeo de secciones con banderas de protección de memoria adecuadas
- Reubicaciones de imagen (solo se soportan 2 tipos. No he visto una imagen PE con otros tipos de reubicación)
- Las importaciones y las importaciones retrasadas se resuelven
- La importación enlazada se resuelve como efecto secundario, creo
- Exportaciones de módulos
- Carga de imágenes de exportación reenviadas
- Redirección de nombres de esquema de API
- Redirección y aislamiento SxS
- Soporte de contexto de activación
- Resolución de ruta de DLL similar al orden de carga nativo
- Callbacks TLS. Solo para un hilo y solo con razones PROCESS_ATTACH/PROCESS_DETACH.
- TLS estático
- Soporte de manejo de excepciones (SEH y C++)
- Agregar módulo a algunas estructuras nativas del cargador (para soporte básico de API de módulos: GetModuleHandle, GetProcAddress, etc.)
- Inicialización de cookie de seguridad
- Las imágenes C++/CLI son compatibles
- Descarga de imagen
- Incrementar contador de referencia para bibliotecas de importación en caso de mapeo manual de importaciones
- Las dependencias cíclicas se manejan adecuadamente
Características del controlador
- Asignar/liberar/proteger memoria de usuario
- Leer/escribir memoria de usuario y kernel
- Deshabilitar DEP permanente para procesos WOW64
- Cambiar bandera de protección de procesos
- Cambiar derechos de acceso de identificadores
- Reasignar memoria de proceso
- Ocultar memoria de modo usuario asignada
- Inyección de DLL en modo usuario y mapeo manual
- Mapeo manual de controladores
Requisitos
- Visual Studio 2017 15.7 o superior
- Windows SDK 10.0.17134 o superior
- WDK 10.0.17134 o superior (solo controlador)
- Librerías VC++ 2017 para Spectre (x86 y x64)
- Visual C++ ATL (x86/x64) con mitigaciones Spectre
Licencia
Blackbone tiene licencia MIT. Las dependencias tienen sus respectivas licencias.
