Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/nathan-luevano/silica
Analisi StaticaAnalisi Dinamica (Sandboxing)Analisi delle VulnerabilitàReverse EngineeringFuzzingUtilità e FrameworkAnalisi di BinariPaper e Ricerca
GitHubnathan-luevano/silica

silica

Validazione differenziale esaustiva di tutte le 4,3 miliardi di codifiche di istruzioni AArch64.

Vedi Repository
21 giorno faNon ancora revisionato
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

SILICA

Una mappa completa di dove i decoder AArch64 divergono dall'architettura.

Silica esamina ognuna delle 4.294.967.296 possibili parole di istruzione A64, confronta Capstone, LLVM e Unicorn con la specifica leggibile da macchina di Arm, e trasforma le differenze in evidenze riproducibili.

Rust Python PyPI License: Apache 2.0 Goals verified Encodings swept


Che un disassembler dichiari "valido" è facile. Sapere se ha ragione è più difficile. La maggior parte dei test differenziali può rivelare che gli strumenti sono in disaccordo, ma non può identificare la risposta corretta senza un oracolo indipendente. Silica usa il rilascio XML di Arm come tale oracolo.

A64 rende possibile un esperimento insolitamente completo: le istruzioni sono esattamente larghe 32 bit, quindi l'intero spazio di codifica è finito e praticabile da enumerare. Silica sfrutta questa proprietà. I risultati di validità riportati di seguito non sono una stima o una campagna di fuzzing; ogni possibile parola è stata verificata.

Cosa ha trovato Silica

Questi risultati usano ISA_A64_xml_A_profile-2026-06_mc (Armv9.6-A). La scansione è stata suddivisa in 256 shard verificati indipendentemente che coprono tutte le 2³² codifiche.

RisultatoConteggioQuota dello spazio totale
Allocato dalla specifica Arm1.799.435.77641,9%
Non allocato dalla specifica Arm2.495.531.52058,1%
Disaccordi di validità trovati723.801.67816,9%
Riproduttori minimi pronti per l'upstream10—

Accordo con la specifica sulla validità di una codifica:

DecoderAccordoVisuale
Capstone84,8%█████████████████████████░░░░░
LLVM87,6%██████████████████████████░░░░
Unicorn88,3%██████████████████████████░░░░

Il grande divario di validità ha cause identificabili. Unicorn verifica la validità eseguendo un'istruzione e osservando i trap, mentre gli altri oracoli decodificano senza esecuzione. Un piccolo numero di regioni è anche influenzato da condizioni UNDEFINED in fase di decodifica che l'oracolo della specifica compilata non valuta. Silica registra queste limitazioni invece di attenuarle nel risultato.

Testo delle istruzioni

Confrontare mnemoniche e operandi renderizzati è molto più costoso che registrare un bit di validità. Silica valuta quindi il testo su un campione deterministico di 1.000.000 di parole estratte da 1.266.064.016 candidate in cui tutti e quattro gli oracoli considerano la codifica valida. Questo è un risultato campionato ed è deliberatamente tenuto separato dalle cifre esaustive di validità.

Classificazione all'interno del campioneRecordQuota
Rendering degli operandi diverso862.64886,3%
Normalizzazione da rivedere137.35213,7%

Il campione è utile per individuare il lavoro di normalizzazione e presentazione; non pretende una copertura esaustiva di ogni rendering testuale.

Esplora i risultati

Il motore di scansione produce un grande dataset di ricerca. silica-scope è l'applicazione terminale complementare che rende quel dataset accessibile. Apre una directory di artefatti Silica completata e consente di sfogliare le metriche principali, ispezionare la mappa di codifica a 256 shard, filtrare i disaccordi, cercare qualsiasi parola a 32 bit e leggere i riproduttori pronti per la segnalazione.

Installalo da PyPI con Python 3.11 o superiore:

root@kitploit:~
pipx install silica-scope

Poi eseguilo da un checkout di Silica o puntalo a una directory di artefatti:

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

silica-scope è un lettore in puro Python senza dipendenze da decoder nativi. Non avvia la scansione esaustiva e gestisce con grazia il set di artefatti pubblicati più piccolo del repository. Consulta la guida al lettore terminale per i pannelli, i controlli da tastiera e le opzioni di scoperta degli artefatti.

Come funziona

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"]

Il percorso ad alto volume è scritto in Rust e chiama ciascun decoder in-process. Memorizza un bit per codifica per oracolo, il che mantiene il confronto esaustivo compatto e rende il disaccordo una diretta operazione su bitmap. I crash vengono bisecati fino alla parola di istruzione esatta.

Python gestisce la compilazione della specifica, la normalizzazione, il reporting e il livello di verifica indipendente. Gli schemi degli artefatti, le regole di campionamento e le limitazioni note sono documentati in docs/formats.md.

Riprodurre il lavoro

Crea l'ambiente con versioni bloccate e verifica che gli input locali richiesti siano disponibili:

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

La specifica XML di Arm non è inclusa nel repository a causa della sua licenza. silica doctor segnala dove Silica si aspetta di trovarla e qualsiasi altro prerequisito mancante.

Per eseguire l'intera pipeline da un checkout preparato:

root@kitploit:~
make all

Questa è una scansione completa di 2³², non un rapido smoke test. Produce l'oracolo compilato, i record degli shard, le bitmap di validità, il corpus dei disaccordi, le metriche pubblicate, i riproduttori e un hash del risultato SHA-256 stabile.

Fidati, ma verifica

Sette verificatori indipendenti ricalcolano le affermazioni del progetto dagli artefatti grezzi. Non si fidano di un riepilogo generato, e ogni verificatore ha una fixture che dimostra che rileva il difetto da cui si protegge. Non esiste uno stato saltato o provvisorio.

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

Le versioni bloccate dei decoder e un hash del risultato ricalcolato da zero rendono comparabili esecuzioni separate. Gli obiettivi di verifica e il loro stato attuale sono registrati in GOALS.yml.

Ambito

Silica attualmente copre la decodifica A64 base e Advanced SIMD. SVE, SVE2, SME, A32/T32, RISC-V, i round trip dell'assembler e i test di esecuzione generali sono fuori dallo studio v1.

L'ispirazione più vicina è Sandsifter, che esplora lo spazio di istruzioni a lunghezza variabile di x86. Silica applica lo stesso spirito di scetticismo sistematico ad AArch64, dove le codifiche a larghezza fissa e una specifica indipendente consentono un confronto completo e con giudizio.


Apache 2.0 — vedi LICENSE

Scarica lo strumento