NeuroCore
Utilitário de Análise e Visualização Estrutural de Binários de Alto Desempenho
Resumo
NeuroCore é um utilitário nativo do macOS projetado para a análise estrutural de dados binários por meio de visualização em alta velocidade. Ao utilizar Computação de Propósito Geral em Unidades de Processamento Gráfico (GPGPU) via Metal Compute Shaders, o aplicativo mapeia fluxos binários brutos em uma Curva de Preenchimento de Espaço de Hilbert em tempo real. Essa projeção facilita a rápida identificação da taxonomia do arquivo, distribuição de entropia e anomalias criptográficas, abordando as limitações da representação hexadecimal linear.
Introdução
Editores hexadecimais tradicionais apresentam dados binários em um formato linear baseado em offsets, o que obscurece padrões estruturais em macro escala e a densidade dos dados. O NeuroCore aborda essa lacuna heurística projetando dados lineares em um espaço topológico bidimensional.
A projeção central baseia-se na Curva de Hilbert, uma curva fractal contínua de preenchimento de espaço. Essa transformação matemática preserva a localidade espacial: pontos de dados adjacentes no fluxo de memória linear permanecem estritamente adjacentes na visualização 2D. Essa propriedade permite que analistas interpretem visualmente a composição estrutural de um arquivo — distinguindo entre código de máquina, texto estruturado, bitmaps e blocos de alta entropia — sem a necessidade de analisar o cabeçalho do arquivo.
Arquitetura Técnica
O NeuroCore é arquitetado como um aplicativo nativo de alto desempenho, ignorando camadas de abstração intermediárias para interagir diretamente com a GPU.
- Linguagem: Swift 5.5+ (Concorrência Estrita)
- Pipeline Gráfico: Metal API (Encoders de Comando de Computação e Renderização)
- Interface: SwiftUI com ponte
NSViewRepresentable para camadas Metal.
Pipeline de Renderização
O mecanismo de renderização utiliza um kernel personalizado da Metal Shading Language (MSL) para executar computação paralela da Entropia de Shannon e mapeamento de coordenadas.
- Ingestão: Dados binários brutos são transmitidos para objetos
MTLBuffer.
- Computação: A GPU executa um cálculo de entropia em janela deslizante através do buffer.
- Mapeamento: Offsets lineares são transformados em coordenadas $(x, y)$ usando algoritmos de mapeamento Hilbert bitwise.
- Rasterização: Fragmentos de pixel são coloridos dinamicamente com base na variância local de entropia, alcançando desempenho de 60fps em conjuntos de dados arbitrariamente grandes sem sobrecarga de VRAM.
Análise Visual de Dados e Interpretação
Os estudos de caso a seguir demonstram a eficácia do NeuroCore em distinguir estruturas de arquivos por meio da visualização de entropia.
Figura 1: Visualização de um binário não identificado de 17,7 MB (Identificado como JSON Hierárquico)
Estudo de Caso I: Dados Hierárquicos de Baixa Entropia
Assunto: Arquivo de 17,7 MB classificado como "Desconhecido" pelo sistema operacional.
- Assinatura de Entropia (Baixa/Média): A visualização é dominada pelo espectro verde/ciano, indicativo de uma pontuação de entropia de $\approx 2.0 - 4.0$. Ao contrário de blobs criptografados, esse espectro denota alta redundância e previsibilidade dentro do fluxo de dados.
- Características Topológicas: A segmentação geométrica distinta e os artefatos "quadrados" ao longo da Curva de Hilbert são característicos de texto pretty-printed. Regiões sólidas representam sequências de bytes recorrentes (por exemplo, indentação de espaços, chaves repetidas), enquanto variações dispersas representam mudanças de valor.
- Conclusão: A topografia visual confirma que o arquivo é uma estrutura de texto hierárquica não comprimida (conjunto de dados JSON) em vez de um executável compilado, anulando a necessidade de inspeção hexadecimal inicial.
Figura 2: Visualização de uma imagem de disco Apple de 192 MB (.dmg)
Estudo de Caso II: Arquivos Comprimidos de Alta Entropia
Assunto: Volume .dmg de 192 MB.
- Assinatura de Entropia (Alta): A saturação de dados de pixel vermelho significa entropia máxima ($\approx 7.5 - 8.0$ bits por byte). Embora visualmente interpretado como "ruído", essa distribuição estocástica indica a eliminação efetiva da redundância de dados.
- Uniformidade de Textura: A visualização carece das "ilhas" geométricas vistas na Figura 1. Algoritmos de compressão (por exemplo, LZFSE, zlib) distribuem valores de bytes uniformemente para maximizar a eficiência de armazenamento, resultando em um campo de alta variância.
- Conclusão: Essa densidade visual é a assinatura distinta de executáveis empacotados, volumes criptografados ou arquivos comprimidos. Em um contexto forense, observar essa assinatura em um arquivo que supostamente seria um documento padrão sugere imediatamente injeção de payload esteganográfico ou criptografia.
Principais Recursos
- Computação Acelerada por Hardware: Descarga heurísticas de entropia e transformação de coordenadas para a GPU via Metal Compute Shaders, garantindo navegação em tempo real.
- Preservação da Localidade de Hilbert: Transforma fluxos lineares em topografia 2D mantendo relacionamentos de vizinhança, tornando os limites estruturais visualmente explícitos.
- Colorimetria Baseada em Entropia:
- Vermelho: Alta Entropia (Criptografia, Compressão, saída de RNG).
- Azul/Verde: Entropia Baixa-Média (código de máquina x86/ARM64, Texto, Cabeçalhos).
- Preto: Espaço Nulo (preenchimento/alocação zero).
- Virtual Windowing: Implementa um sistema de navegação de alocação zero. Os offsets são calculados dinamicamente dentro do shader, permitindo a travessia imediata de arquivos em escala de gigabytes sem pré-carregar conjuntos de dados completos na VRAM.
Casos de Uso
- Engenharia Reversa: Localização rápida de seções
.text, recursos embutidos ou payloads criptografados dentro de wrappers binários.
- Análise de Malware: Identificação visual de packers e camadas de ofuscação, que se manifestam como anomalias de alta entropia distintas da lógica compilada padrão.
- Perícia Digital: Detecção de dados anexados (overlays de EOF) ou modificações esteganográficas que interrompem os padrões esperados de estrutura de arquivos.
- Validação Criptográfica: Verificação visual da uniformidade do Gerador de Números Aleatórios (RNG) e da eficiência do algoritmo de compressão.
Instalação e Compilação
Este projeto utiliza o toolchain nativo do macOS e não requer gerenciadores de pacotes externos.
Pré-requisitos:
- macOS 12.0 (Monterey) ou superior.
- Arquitetura Apple Silicon (M1/M2/M3) recomendada para rendimento ideal do shader.
- Xcode Command Line Tools.
Compilação:
Execute o seguinte comando na raiz do projeto para invocar o compilador Swift e vincular os frameworks necessários (SwiftUI, Metal, MetalKit, AppKit, Foundation):
swiftc NeuroCoreApp.swift ContentView.swift Renderer.swift ShaderSource.swift Utils.swift \
-o NeuroCore \
-sdk $(xcrun --show-sdk-path) \
-target arm64-apple-macos12.0 \
-framework SwiftUI \
-framework Metal \
-framework MetalKit \
-framework AppKit \
-framework Foundation
Execução:
Uso
- Ingestão de Dados: Arraste e solte qualquer alvo binário diretamente sobre a viewport de visualização. A renderização é instantânea.
- Navegação:
- Panorâmica: Rolar com dois dedos (trackpad) ou roda de rolagem.
- Zoom: Segurar
Option + Rolar para ajustar a densidade de bytes por pixel.
Licença
Todos os direitos reservados.
Uso comercial, redistribuição ou modificação não autorizados são estritamente proibidos.