Blackbone
Biblioteca de hacking de memória Windows
Funcionalidades
Interação com processos
- Gerenciar PEB32/PEB64
- Gerenciar processo através da barreira WOW64
Memória do processo
- Alocar e liberar memória virtual
- Alterar proteção de memória
- Ler/Escrever memória virtual
Módulos do processo
- Enumerar todos os módulos carregados (32/64 bits). Enumerar módulos usando lista de carregador/objetos de seção/métodos de cabeçalhos PE.
- Obter endereço de função exportada
- Obter o módulo principal
- Desvincular módulo das listas do carregador
- Injetar e ejetar módulos (incluindo imagens IL puras)
- Injetar módulos de 64 bits em processos WOW64
- Mapear manualmente imagens PE nativas
Threads
- Enumerar threads
- Criar e encerrar threads. Suporte para criação de threads entre sessões.
- Obter código de saída da thread
- Obter thread principal
- Gerenciar TEB32/TEB64
- Aguardar threads
- Suspender e retomar threads
- Definir/Remover breakpoints de hardware
Pesquisa de padrões
- Pesquisar por padrão arbitrário em processo local ou remoto
Execução remota de código
- Executar funções em processo remoto
- Montar código próprio e executá-lo remotamente
- Suporte para convenções cdecl/stdcall/thiscall/fastcall
- Suporte para argumentos passados por valor, ponteiro ou referência, incluindo estruturas
- Tipos FPU são suportados
- Executar código em nova thread ou em qualquer existente
Hooking remoto
- Hooker funções em processo remoto usando int3 ou breakpoints de hardware
- Hooker funções no retorno
Funcionalidades de mapeamento manual
- Suporte a imagens x86 e x64
- Mapeamento em qualquer processo desprotegido arbitrário
- Mapeamento de seção com flags de proteção de memória adequadas
- Realocações de imagem (apenas 2 tipos suportados. Ainda não vi uma imagem PE com outros tipos de realocação)
- Imports e Delayed imports são resolvidos
- Import vinculado é resolvido como efeito colateral, eu acho
- Exportações do módulo
- Carregamento de imagens de exportação encaminhadas
- Redirecionamento de nome de esquema de API
- Redirecionamento e isolamento SxS
- Suporte a contexto de ativação
- Resolução de caminho de DLL semelhante à ordem de carregamento nativa
- Callbacks TLS. Apenas para uma thread e apenas com razões PROCESS_ATTACH/PROCESS_DETACH.
- TLS estático
- Suporte a tratamento de exceções (SEH e C++)
- Adicionar módulo a algumas estruturas nativas do carregador (para suporte básico à API de módulo: GetModuleHandle, GetProcAdress, etc.)
- Inicialização de cookie de segurança
- Imagens C++/CLI são suportadas
- Descarregamento de imagem
- Aumentar contador de referência para bibliotecas de importação em caso de mapeamento manual de importação
- Dependências cíclicas são tratadas adequadamente
Funcionalidades do driver
- Alocar/liberar/proteger memória do usuário
- Ler/escrever memória do usuário e do kernel
- Desabilitar DEP permanente para processos WOW64
- Alterar flag de proteção do processo
- Alterar direitos de acesso do handle
- Remapear memória do processo
- Ocultar memória alocada no modo usuário
- Injeção de DLL em modo usuário e mapeamento manual
- Mapeamento manual de drivers
Requisitos
- Visual Studio 2017 15.7 ou superior
- Windows SDK 10.0.17134 ou superior
- WDK 10.0.17134 ou superior (apenas driver)
- Bibliotecas VC++ 2017 para Spectre (x86 e x64)
- Visual C++ ATL (x86/x64) com Mitigações Spectre
Licença
Blackbone é licenciado sob a Licença MIT. As dependências estão sob suas respectivas licenças.
