
Eine erweiterbare, deterministische Static-Analysis-Engine, die hochwertige IOCs aus PE-Binärdateien und Text extrahiert – entwickelt für die SOC-Automatisierung und moderne Threat-Analysis-Pipelines.
Statische IOC-Extraktion aus einer PE-Datei mit der IOCX-CLI
Dies ist die originale IOCX-Engine für deterministische statische IOC-Extraktion und PE-Analyse. Jegliche anderen Repositorys, die den Namen „iocx“ verwenden, sind nicht mit diesem Projekt verbunden.
Offizielle Links:
Moderne Malware ist standardmäßig adversativ — fehlerhaft, ausweichend und darauf ausgelegt, naive Extraktoren zu brechen.
IOCX wurde für Umgebungen entwickelt, in denen Korrektheit und Determinsmus wirklich zählen.
IOCX ist die offizielle statische IOC-Extraktions-Engine — ein deterministisches, binär-bewusstes System, das für DFIR, SOC-Automatisierung, CI/CD-Sicherheit und groß angelegte Threat-Intelligence-Pipelines entwickelt wurde.
Im Gegensatz zu reinen Regex-Extraktoren oder sandbox-abhängigen Tools führt IOCX Folgendes durch:
Es ist eine Kernkomponente des MalX-Labs-Ökosystems für skalierbare, moderne Bedrohungsanalyse.
echo "http://malicious.example" | iocx -
Oder eine PE-Datei sicher scannen:
iocx suspicious.exe -a deep
Sicherheitsteams stehen vor drei anhaltenden Problemen:
IOCX löst dies mit einer deterministischen, rein statischen Engine, die für Automatisierung, Sicherheit und Skalierung entwickelt wurde.
IOCX ist bewusst nicht:
Es führt niemals nicht vertrauenswürdigen Code aus. Es führt niemals dynamische Analysen durch. Es ist bewusst rein statisch — für Sicherheit, Determinsmus und CI/CD-Kompatibilität.
IOCX ist für die Realitäten moderner Malware entwickelt, nicht für die Annahmen von Legacy-Tools.
Stabile, reproduzierbare Ausgabe — keine Zufälligkeit, keine Volatilität.
Ausführung ist unsicher. Statische Analyse ist vorhersehbar, skalierbar und CI-freundlich.
Fehlerhafte PEs, korrupte RVAs, feindselige Strings — IOCX behandelt sie als normale Eingaben.
Nachgelagerte Systeme sollten bei Upgrades niemals brechen.
150–300 MB/s bei Rohtext. 6–15 MB/s bei typischen PEs. Vorhersehbar selbst unter Worst-Case-adversativer Last.
Diese Verpflichtungen stammen aus einer veröffentlichten Forschungsmethodik für die strukturelle PE-Analyse — deterministische Fixture-Konstruktion, Einzel-Anomalie-Disziplin und Windows-Loader-Verhalten als Korrektheits-Orakel. Siehe docs/methodology.md für die vollständige Methodik und paax.dev für die breitere adversative-PE-Taxonomie und kommerzielle Fixture-Suite.
Kurz gesagt: IOCX ist für reale adversative Realität gebaut, nicht für idealisierte Eingaben.
150–300 MB/s anhaltender Durchsatz Schneller Pfad — kein PE-Parsing.
| Detektor |
|---|
.pdata)-Verzeichnisses hinzu; 14 neue Reason-Codes; insgesamt 15 Validatoren.pip install iocx
iocx suspicious.exe
echo "Visit http://bad.example.com" | iocx -
iocx suspicious.exe -a
from iocx.engine import Engine
engine = Engine()
results = engine.extract("suspicious.exe")
print(results)
IOCX erzeugt strukturiertes, deterministisches JSON, das IOCs, PE-Metadaten, Section-Analyse, Heuristiken und Obfuskations-Indikatoren enthält.
Das folgende Beispiel ist eine gekürzte Ausgabe einer echten adversativen PE-Probe. Es zeigt die Form und Tiefe des Schemas, während die Größe für Dokumentationszwecke handhabbar bleibt.
{
"file": "heuristic_rich.full.exe",
"type": "PE",
"iocs": {
"urls": ["http://not-a-real-domain.test/payload"],
"domains": ["example-malware.com"],
"ips": ["192.0.2.123"],
"hashes": [
"abcd1234ef567890abcd1234ef567890",
"1234567890",
"3333333333333333"
],
"filepaths": [
"/usr/src/mingw-w64-11.0.1-3build1/mingw-w64-crt/crt/crtexe.c",
"/usr/x86_64-w64-mingw32/include",
"/usr/src/mingw-w64-11.0.1-3build1/mingw-w64-crt/crt/pseudo-reloc.c"
]
},
"metadata": {
"file_type": "PE",
"imports": ["KERNEL32.dll", "msvcrt.dll", "USER32.dll"],
"sections": [
".text", ".data", ".rwx", ".rdata",
"UPX0", ".pdata", ".xdata", ".tls"
],
"resources": [],
"resource_strings": [],
"delayed_imports": [],
"bound_imports": [],
"exports": [],
"signatures": [],
"has_signature": false,
"tls": {
"start_address": 5368758272,
"end_address": 5368758280,
"callbacks": 5368754232
},
"header": {
"entry_point": 5088,
"image_base": 5368709120,
"machine": "AMD64",
"subsystem": "Windows GUI"
},
"optional_header": {
"section_alignment": 4096,
"file_alignment": 512,
"size_of_image": 155648
}
},
"analysis": {
"sections": [
{ "name": ".text", "entropy": 5.92 },
{ "name": ".rwx", "entropy": 0 },
{ "name": "UPX0", "entropy": 0.34 },
{ "name": ".rdata", "entropy": 4.03 }
],
"obfuscation": [
{
"value": "abnormal_section_layout_virtual_only",
"category": "obfuscation_hint",
"metadata": {
"section": ".bss",
"raw_size": 0,
"virtual_size": 384
}
}
],
"extended": [
{
"value": "summary",
"category": "pe_metadata",
"metadata": {
"dll_count": 3,
"import_count": 45,
"resource_count": 0,
"has_tls": true,
"has_signature": false
}
}
],
"heuristics": [
{
"value": "packer_suspected",
"metadata": {
"reason": "packer_section_name",
"section": "UPX0"
}
},
{
"value": "anti_debug_heuristic",
"metadata": {
"reason": "anti_debug_api_import",
"dll": "kernel32.dll",
"function": "CheckRemoteDebuggerPresent"
}
},
{
"value": "anti_debug_heuristic",
"metadata": {
"reason": "timing_api_import",
"dll": "kernel32.dll",
"function": "GetTickCount"
}
},
{
"value": "pe_structure_anomaly",
"metadata": {
"reason": "section_overlaps_headers",
"section": ".bss",
"raw_address": 0,
"size_of_headers": 1536
}
},
{
"value": "pe_structure_anomaly",
"metadata": {
"reason": "data_directory_overlap",
"directory_a": "IMAGE_DIRECTORY_ENTRY_IMPORT",
"directory_b": "IMAGE_DIRECTORY_ENTRY_IAT"
}
}
]
}
}
iocx/
├── examples/
├── docs/
├── tests/
└── iocx
├── detectors/
├── parsers/
├── plugins/
├── cli/
└── analysis/
IOCX ist darauf ausgelegt, sicher und vorhersehbar erweitert zu werden. Plugins sind erstklassige Bürger, validiert durch dieselben deterministischen Snapshot-Tests wie die Kern-Engine.
Sie können Folgendes erstellen:
Siehe:
docs/specs/overlap-suppression.mddocs/specs/plugin-authoring-guidelines.mdIOCX ist mehr als eine einzelne Binärdatei — es ist ein modulares Ökosystem:
IOCX wird eingesetzt in:
Überall dort, wo Indikatoren sicher, deterministisch und in großem Maßstab extrahiert werden müssen, passt IOCX.
Alle Testproben sind:
IOCX setzt strenge Leistungsschwellen in CI durch, um sicherzustellen:
Siehe:
docs/performance.mdDer Name IOCX bezieht sich ausschließlich auf die offizielle Engine, die veröffentlicht wird auf:
iocxiocx-<plugin>iocx-extension-<name>iocx-detector-<feature>Die IOCX-Entwicklung konzentriert sich auf Stabilität, Erweiterbarkeit und tiefere statische Analyseabdeckung. Die folgenden Punkte repräsentieren laufende Arbeits- und Forschungsbereiche.
Wir begrüßen:
Siehe CONTRIBUTING.md für Richtlinien.
Wenn Sie ein Sicherheitsproblem entdecken, öffnen Sie kein GitHub-Issue.
Befolgen Sie die Anweisungen in SECURITY.md.
MPL-2.0-Lizenz — siehe LICENSE.
| Fähigkeit | IOCX | Typische IOC-Extraktoren | Sandbox / Dynamische Tools |
|---|
| Sicherheit | Null-Ausführung, rein statisch | Nur Regex, keine Binärsicherheit | Führt nicht vertrauenswürdigen Code aus (hohes Risiko) |
| Determinsmus | Vollständig deterministische Ausgabe | Nicht-deterministisch unter Rauschen | Von Natur aus nicht-deterministisch |
| Binär-Bewusstsein | Vollständige PE-Parsing, Heuristiken | Keine Binärunterstützung | Ja, aber unsicher + langsam |
| Adversative Resilienz | Getestet gegen fehlerhafte PEs, feindselige Strings | Leicht zu umgehen | Stürzt oft ab oder klassifiziert falsch |
| Leistung | 150–300 MB/s (Text), 6–15 MB/s (PE) | Stark variabel | Extrem langsam |
| CI/CD-freundlich | Ja — sicher, deterministisch, schnell | Teilweise | Nein — unsicher für Pipelines |
| Schema-Stabilität | Garantiert | Selten | Keine |
| 1-MB-Zeit |
|---|
| Durchsatz |
|---|
| Crypto | 0.0037 s | ~270 MB/s |
| Dateipfade | 0.0041 s | ~250 MB/s |
| IP | 0.0065 s | ~156 MB/s |
| Domains | 0.0035 s | ~300 MB/s |
dumpbin auf echten Binärdateien verifiziertpython-magic-Abhängigkeit, die Importfehler auf Windows-Systemen verursachte--min-length-Konsistenz-Fix ist für v0.7.5 geplantidna-Abhängigkeit hinzu