Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
silica — Erschöpfende differenzielle Validierung aller 4,3 Mrd. AArch64-Befehlskodierungen. | Kitploit
Tools/GitHubGitHub/nathan-luevano/silica
Statische AnalyseDynamische Analyse (Sandboxing)SchwachstellenanalyseReverse EngineeringFuzzingDienstprogramme & FrameworksBinäranalysePapers & Forschung
GitHubnathan-luevano/silica

silica

Erschöpfende differenzielle Validierung aller 4,3 Mrd. AArch64-Befehlskodierungen.

Repository anzeigen
2vor 1 TagNoch nicht geprüft
Webseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SILICA

Eine vollständige Karte davon, wo AArch64-Decoder von der Architektur abweichen.

Silica durchläuft jedes der 4.294.967.296 möglichen A64-Instruktionswörter, vergleicht Capstone, LLVM und Unicorn mit Arms maschinenlesbarer Spezifikation und verwandelt die Unterschiede in reproduzierbare Belege.

Rust Python PyPI License: Apache 2.0 Goals verified Encodings swept


Dass ein Disassembler „gültig“ sagt, ist einfach. Zu wissen, ob er recht hat, ist schwieriger. Die meisten differenziellen Tests können aufdecken, dass Tools uneinig sind, aber sie können die richtige Antwort nicht ohne ein unabhängiges Orakel identifizieren. Silica verwendet Arms XML-Release als dieses Orakel.

A64 ermöglicht ein ungewöhnlich gründliches Experiment: Instruktionen sind exakt 32 Bit breit, sodass der gesamte Kodierungsraum endlich und praktisch aufzählbar ist. Silica nutzt diese Eigenschaft. Die untenstehenden Gültigkeitsergebnisse sind keine Schätzung oder ein Fuzzing-Kampagne; jedes mögliche Wort wurde geprüft.

Was Silica gefunden hat

Diese Ergebnisse verwenden ISA_A64_xml_A_profile-2026-06_mc (Armv9.6-A). Der Sweep wurde in 256 unabhängig verifizierte Shards aufgeteilt, die alle 2³² Kodierungen abdecken.

ErgebnisAnzahlAnteil am gesamten Raum
Von der Arm-Spezifikation zugewiesen1.799.435.77641,9%
Von der Arm-Spezifikation nicht zugewiesen2.495.531.52058,1%
Gefundene Gültigkeitsabweichungen723.801.67816,9%
Minimale upstream-fähige Reproduzierer10—

Übereinstimmung mit der Spezifikation darüber, ob eine Kodierung gültig ist:

DecoderÜbereinstimmungVisuell
Capstone84,8%█████████████████████████░░░░░
LLVM87,6%██████████████████████████░░░░
Unicorn88,3%██████████████████████████░░░░

Die große Gültigkeitslücke hat identifizierbare Ursachen. Unicorn testet Gültigkeit, indem es eine Instruktion ausführt und Traps beobachtet, während die anderen Orakel ohne Ausführung dekodieren. Eine kleine Anzahl von Regionen ist auch von Dekodierungszeit-UNDEFINED-Bedingungen betroffen, die das kompilierte Spezifikationsorakel nicht auswertet. Silica zeichnet diese Einschränkungen auf, anstatt sie aus dem Ergebnis herauszuglätten.

Instruktionstext

Der Vergleich gerenderter Mnemonics und Operanden ist viel teurer als das Aufzeichnen eines Gültigkeitsbits. Silica wertet daher Text anhand einer deterministischen Stichprobe von 1.000.000 Wörtern aus, die aus 1.266.064.016 Kandidaten gezogen wurden, bei denen alle vier Orakel die Kodierung als gültig betrachten. Dies ist ein Stichprobenergebnis und wird bewusst von den erschöpfenden Gültigkeitszahlen getrennt gehalten.

Klassifizierung innerhalb der StichprobeDatensätzeAnteil
Operanden-Rendering unterscheidet sich862.64886,3%
Normalisierung muss überprüft werden137.35213,7%

Die Stichprobe ist nützlich, um Normalisierungs- und Darstellungsarbeit zu lokalisieren; sie beansprucht keine erschöpfende Abdeckung jeder textuellen Darstellung.

Die Ergebnisse erkunden

Die Sweep-Engine erzeugt einen großen Forschungsdatensatz. silica-scope ist die begleitende Terminal-App, die diesen Datensatz zugänglich macht. Sie öffnet ein fertiges Silica-Artefaktverzeichnis und ermöglicht es Ihnen, Kernmetriken zu durchsuchen, die 256-Shard-Kodierungskarte zu inspizieren, Abweichungen zu filtern, jedes 32-Bit-Wort nachzuschlagen und die einreichungsfertigen Reproduzierer zu lesen.

Installieren Sie es von PyPI mit Python 3.11 oder neuer:

root@kitploit:~
pipx install silica-scope

Führen Sie es dann aus einem Silica-Checkout aus oder richten Sie es auf ein Artefaktverzeichnis:

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

silica-scope ist ein reiner Python-Reader ohne native Decoder-Abhängigkeiten. Es startet nicht den erschöpfenden Sweep und geht mit dem kleineren veröffentlichten Artefaktsatz des Repositorys problemlos um. Siehe den Terminal-Reader-Leitfaden für die Bereiche, Tastatursteuerungen und Optionen zur Artefakterkennung.

Wie es funktioniert

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

Der Hochvolumen-Pfad ist in Rust geschrieben und ruft jeden Decoder im Prozess auf. Er speichert ein Bit pro Kodierung pro Orakel, was den erschöpfenden Vergleich kompakt hält und Abweichungen zu einer direkten Bitmap-Operation macht. Abstürze werden bis zum exakten Instruktionswort biseziert.

Python übernimmt die Spezifikationskompilierung, Normalisierung, Berichterstellung und die unabhängige Verifikationsschicht. Artefakt-Schemas, Sampling-Regeln und bekannte Einschränkungen sind in docs/formats.md dokumentiert.

Die Arbeit reproduzieren

Erstellen Sie die gepinnte Umgebung und prüfen Sie, ob die erforderlichen lokalen Eingaben verfügbar sind:

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

Arms XML-Spezifikation wird aufgrund ihrer Lizenz nicht mitgeliefert. silica doctor meldet, wo Silica sie erwartet und welche anderen Voraussetzungen fehlen.

Um die vollständige Pipeline aus einem vorbereiteten Checkout auszuführen:

root@kitploit:~
make all

Dies ist ein vollständiger 2³²-Sweep, kein schneller Smoke-Test. Er erzeugt das kompilierte Orakel, Shard-Datensätze, Gültigkeits-Bitmaps, den Abweichungskorpus, veröffentlichte Metriken, Reproduzierer und einen stabilen SHA-256-Ergebnis-Hash.

Vertrauen, aber überprüfen

Sieben unabhängige Verifizierer berechnen die Behauptungen des Projekts aus Rohartefakten neu. Sie vertrauen keiner generierten Zusammenfassung, und jeder Verifizierer hat ein Fixture, das beweist, dass er den Defekt erkennt, gegen den er absichert. Es gibt keinen übersprungenen oder vorläufigen Zustand.

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

Gepinnte Decoder-Versionen und ein frisch neu berechneter Ergebnis-Hash machen separate Läufe vergleichbar. Die Verifikationsziele und ihr aktueller Status sind in GOALS.yml festgehalten.

Umfang

Silica deckt derzeit Basis-A64- und Advanced-SIMD-Dekodierung ab. SVE, SVE2, SME, A32/T32, RISC-V, Assembler-Roundtrips und allgemeine Ausführungstests liegen außerhalb der v1-Studie.

Die nächste Inspiration ist Sandsifter, das den variable-Länge-Instruktionsraum von x86 erkundet. Silica wendet denselben Geist systematischer Skepsis auf AArch64 an, wo feste Kodierungsbreiten und eine unabhängige Spezifikation einen vollständigen, entschiedenen Vergleich ermöglichen.


Apache 2.0 — siehe LICENSE

Tool herunterladen