Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
silica — Validação diferencial exaustiva de todas as 4,3B codificações de instruções AArch64. | Kitploit
Ferramentas/GitHubGitHub/nathan-luevano/silica
Análise EstáticaAnálise Dinâmica (Sandboxing)Análise de VulnerabilidadesEngenharia ReversaFuzzingUtilitários e FrameworksAnálise de BináriosPapers e Pesquisa
GitHubnathan-luevano/silica

silica

Validação diferencial exaustiva de todas as 4,3B codificações de instruções AArch64.

Ver Repositório
2há 1 diaAinda não revisado
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

SILICA

Um mapa completo de onde os decodificadores AArch64 divergem da arquitetura.

O Silica percorre cada uma das 4.294.967.296 palavras de instrução A64 possíveis, compara Capstone, LLVM e Unicorn com a especificação legível por máquina da Arm, e transforma as diferenças em evidências reproduzíveis.

Rust Python PyPI License: Apache 2.0 Goals verified Encodings swept


Um desassemblador dizer "válido" é fácil. Saber se está correto é mais difícil. A maioria dos testes diferenciais consegue revelar que as ferramentas divergem, mas não consegue identificar a resposta correta sem um oráculo independente. O Silica usa a versão XML da Arm como esse oráculo.

O A64 torna possível um experimento excepcionalmente minucioso: as instruções têm exatamente 32 bits de largura, então todo o espaço de codificação é finito e prático de enumerar. O Silica aproveita essa propriedade. Os resultados de validade abaixo não são uma estimativa nem uma campanha de fuzzing; cada palavra possível foi verificada.

O que o Silica encontrou

Estes resultados usam ISA_A64_xml_A_profile-2026-06_mc (Armv9.6-A). A varredura foi dividida em 256 shards verificados independentemente, cobrindo todas as 2³² codificações.

ResultadoContagemFração do espaço total
Alocado pela especificação da Arm1.799.435.77641,9%
Não alocado pela especificação da Arm2.495.531.52058,1%
Divergências de validade encontradas723.801.67816,9%
Reproducers mínimos prontos para upstream10—

Concordância com a especificação sobre se uma codificação é válida:

DecodificadorConcordânciaVisual
Capstone84,8%█████████████████████████░░░░░
LLVM87,6%██████████████████████████░░░░
Unicorn88,3%██████████████████████████░░░░

A grande lacuna de validade tem causas identificáveis. O Unicorn testa a validade executando uma instrução e observando traps, enquanto os outros oráculos decodificam sem execução. Um pequeno número de regiões também é afetado por condições UNDEFINED em tempo de decodificação que o oráculo da especificação compilada não avalia. O Silica registra essas limitações em vez de suavizá-las no resultado.

Texto das instruções

Comparar mnemônicos e operandos renderizados é muito mais caro do que registrar um bit de validade. O Silica, portanto, avalia o texto em uma amostra determinística de 1.000.000 de palavras extraídas de 1.266.064.016 candidatas em que todos os quatro oráculos consideram a codificação válida. Este é um resultado amostrado e é deliberadamente mantido separado das cifras exaustivas de validade.

Classificação dentro da amostraRegistrosFração
Renderização de operandos difere862.64886,3%
Normalização precisa de revisão137.35213,7%

A amostra é útil para localizar trabalho de normalização e apresentação; ela não reivindica cobertura exaustiva de toda renderização textual.

Explore os resultados

O motor de varredura produz um grande conjunto de dados de pesquisa. silica-scope é o aplicativo de terminal complementar para tornar esse conjunto de dados acessível. Ele abre um diretório de artefatos finalizados do Silica e permite navegar pelas métricas principais, inspecionar o mapa de codificação de 256 shards, filtrar divergências, consultar qualquer palavra de 32 bits e ler os reproducers prontos para registro.

Instale-o do PyPI com Python 3.11 ou mais recente:

root@kitploit:~
pipx install silica-scope

Depois execute-o a partir de um checkout do Silica ou aponte-o para um diretório de artefatos:

root@kitploit:~
silica-scope
silica-scope /path/to/silica/artifacts
silica-scope --report

silica-scope é um leitor em Python puro, sem dependências de decodificadores nativos. Ele não inicia a varredura exaustiva e lida com o conjunto menor de artefatos publicados do repositório de forma adequada. Consulte o guia do leitor de terminal para os painéis, controles de teclado e opções de descoberta de artefatos.

Como funciona

root@kitploit:~
flowchart LR
    XML["Arm XML specification"] --> SPEC["compiled spec oracle"]
    SPEC --> SWEEP["parallel 32-bit sweep"]
    CAP["Capstone"] --> SWEEP
    LLVM["LLVM"] --> SWEEP
    UNI["Unicorn"] --> SWEEP
    SWEEP --> MAP["validity bitmaps"]
    MAP --> DIFF["exhaustive XOR comparison"]
    DIFF --> CORPUS["classified disagreement corpus"]
    CORPUS --> OUT["metrics · reproducers · result hash"]

O caminho de alto volume é escrito em Rust e chama cada decodificador em processo. Ele armazena um bit por codificação por oráculo, o que mantém a comparação exaustiva compacta e torna a divergência uma operação direta de bitmap. Crashes são bissectados até a palavra de instrução exata.

O Python cuida da compilação da especificação, normalização, relatórios e da camada de verificação independente. Esquemas de artefatos, regras de amostragem e limitações conhecidas estão documentados em docs/formats.md.

Reproduzindo o trabalho

Crie o ambiente fixado e verifique se as entradas locais necessárias estão disponíveis:

root@kitploit:~
micromamba create -y -p ./.venv -f environment.yml
micromamba run -p ./.venv silica doctor

A especificação XML da Arm não é incluída no repositório por causa de sua licença. silica doctor informa onde o Silica espera encontrá-la e quaisquer outros pré-requisitos ausentes.

Para executar o pipeline completo a partir de um checkout preparado:

root@kitploit:~
make all

Esta é uma varredura completa de 2³², não um teste rápido de fumaça. Ela produz o oráculo compilado, registros de shards, bitmaps de validade, corpus de divergências, métricas publicadas, reproducers e um hash de resultado SHA-256 estável.

Confie, mas verifique

Sete verificadores independentes recalculam as afirmações do projeto a partir de artefatos brutos. Eles não confiam em um resumo gerado, e cada verificador tem um fixture que prova que detecta o defeito contra o qual protege. Não há estado ignorado ou provisório.

root@kitploit:~
micromamba run -p ./.venv silica verify

Versões fixadas dos decodificadores e um hash de resultado recalculado do zero tornam execuções separadas comparáveis. As metas de verificação e seu status atual estão registrados em GOALS.yml.

Escopo

O Silica atualmente cobre a decodificação de A64 base e Advanced SIMD. SVE, SVE2, SME, A32/T32, RISC-V, idas e voltas pelo assembler e testes gerais de execução estão fora do estudo v1.

A inspiração mais próxima é o Sandsifter, que explora o espaço de instruções de comprimento variável do x86. O Silica aplica o mesmo espírito de ceticismo sistemático ao AArch64, onde codificações de largura fixa e uma especificação independente permitem uma comparação completa e adjudicada.


Apache 2.0 — consulte LICENSE

Baixar ferramenta