Der Kurs vermittelt die Entwicklung robuster Binärparser mit dissect.cstruct. Ausgehend von Formatbeschreibung und Hexanalyse werden typisierte Strukturen, variable Felder, Versionsunterschiede, Fehlerbehandlung und Tests umgesetzt und anschließend in einen forensischen Analysebaustein integriert.
Inhaltsverzeichnis
- Binärformat und Analyseplan
- Grundlagen von dissect.cstruct
- Strukturen, Arrays und verschachtelte Typen
- Enums, Flags und fachliche Bedeutung
- Zeichenketten und variable Längen
- Offsets, Alignment und relative Verweise
- Versionen und bedingte Felder
- Fehlerbehandlung und defensive Parser
- Tests und Regressionen
- Transformation in forensische Records
- Integration in Dissect
Lernziele
- Binärformate methodisch analysieren und in Strukturdefinitionen überführen
- Primitive Typen, Strukturen, Arrays, Enums, Flags und verschachtelte Formate modellieren
- Variable Längen, Offsets, Alignment und Versionsunterschiede robust behandeln
- Parser mit synthetischen und realitätsnahen Testdaten absichern
- Parsergebnisse kontrolliert in Records oder Plugins weiterverarbeiten
Seminarinhalte
1. Binärformat und Analyseplan
- Schritt 1: Untersuchungsziel, erwartete Felder und benötigte Genauigkeit festlegen.
- Schritt 2: Beispieldateien nach Version, Größe und bekannten Eigenschaften inventarisieren.
- Schritt 3: Header, Magic Values, Offsets und wiederkehrende Muster in einer Hexansicht markieren.
- Schritt 4: Unsichere Annahmen und offene Formatfragen getrennt dokumentieren.
2. Grundlagen von dissect.cstruct
- Schritt 1: Endianness und grundlegende Ganzzahl-, Zeichen- und Bytefelder definieren.
- Schritt 2: Eine erste Struktur laden und gegen bekannte Beispieldaten prüfen.
- Schritt 3: Feldwerte, Rohbytes und Offsetentwicklung parallel kontrollieren.
- Schritt 4: Fehlerhafte Definitionen anhand der ersten Abweichung eingrenzen.
3. Strukturen, Arrays und verschachtelte Typen
- Schritt 1: Wiederkehrende Datensätze als eigene Strukturen modellieren.
- Schritt 2: Feste Arrays und verschachtelte Objekte anhand der Spezifikation definieren.
- Schritt 3: Typdefinitionen wiederverwenden und Namenskonflikte vermeiden.
- Schritt 4: Zwischenergebnisse mit manuellen Berechnungen gegenprüfen.
4. Enums, Flags und fachliche Bedeutung
- Schritt 1: Numerische Statuswerte in aussagekräftige Enums überführen.
- Schritt 2: Bitfelder und kombinierte Flags nachvollziehbar modellieren.
- Schritt 3: Unbekannte Werte erhalten, statt sie stillschweigend zu verwerfen.
- Schritt 4: Technische Werte von ihrer forensischen Interpretation trennen.
5. Zeichenketten und variable Längen
- Schritt 1: Kodierung, Terminierung und Längenfelder eines Formats bestimmen.
- Schritt 2: Variable Arrays und Stringlängen kontrolliert aus Metadaten ableiten.
- Schritt 3: Überlange oder verkürzte Eingaben durch Grenzprüfungen behandeln.
- Schritt 4: Dekodierungsfehler mit Rohwert und Position nachvollziehbar protokollieren.
6. Offsets, Alignment und relative Verweise
- Schritt 1: Absolute und relative Offsets innerhalb des Formats unterscheiden.
- Schritt 2: Padding und Alignment anhand mehrerer Beispieldateien validieren.
- Schritt 3: Verweise nur innerhalb erlaubter Puffergrenzen auflösen.
- Schritt 4: Zyklische, ungültige oder überlappende Referenzen kontrolliert abbrechen.
7. Versionen und bedingte Felder
- Schritt 1: Versionsmerkmale und Strukturvarianten explizit identifizieren.
- Schritt 2: Bedingte Felder in klar getrennte Parserpfade überführen.
- Schritt 3: Gemeinsame Kernstrukturen wiederverwenden, ohne Varianten zu vermischen.
- Schritt 4: Unbekannte Versionen mit einer verständlichen Diagnose zurückweisen.
8. Fehlerbehandlung und defensive Parser
- Schritt 1: Trunkierte Daten, falsche Längen und ungültige Werte gezielt simulieren.
- Schritt 2: Fehler um Datei, Offset, Struktur und erwarteten Typ anreichern.
- Schritt 3: Teilresultate nur dann ausgeben, wenn ihr Gültigkeitsbereich eindeutig ist.
- Schritt 4: Parsergrenzen gegen übermäßige Speicher- oder Laufzeitanforderungen absichern.
9. Tests und Regressionen
- Schritt 1: Kleine Fixtures für normale, minimale und fehlerhafte Daten erstellen.
- Schritt 2: Erwartete Feldwerte und Offsetstände automatisiert prüfen.
- Schritt 3: Neue Formatvarianten als Regressionstests ergänzen.
- Schritt 4: Sensible Originaldaten durch minimierte Testrepräsentationen ersetzen.
10. Transformation in forensische Records
- Schritt 1: Relevante Parserfelder in ein stabiles fachliches Schema überführen.
- Schritt 2: Zeit-, Pfad- und Identitätswerte typgerecht normalisieren.
- Schritt 3: Quelloffset und Herkunftsinformation für die Nachprüfbarkeit erhalten.
- Schritt 4: Rohparsergebnis, Transformation und Record-Ausgabe getrennt testen.
11. Integration in Dissect
- Schritt 1: Parser über eine klar definierte Hilfsschicht an ein Target-Plugin anbinden.
- Schritt 2: Kompatibilität anhand vorhandener Artefakte und Formatmerkmale prüfen.
- Schritt 3: Mehrere Dateien und Parserfehler pro Target kontrolliert verarbeiten.
- Schritt 4: Ausgaben mit target-query und rdump in einem End-to-End-Test validieren.
Praxisübungen
- Analyse eines unbekannten Binärformats aus Header, Offsets und Beispieldaten
- Implementierung typisierter Strukturen mit variablen Feldern und Flags
- Entwicklung defensiver Fehlerbehandlung und automatisierter Regressionstests
- Integration des Parsers in einen Dissect-Plugin-Prototyp mit Record-Ausgabe
Zielgruppe
Python-Entwickler, DFIR-Engineers, Malware- und Artefaktanalysten sowie Maintainer eigener Parser
Voraussetzungen
Sichere Python-Kenntnisse, Grundlagen binärer Datenformate, Hexdarstellung und automatisierter Tests
Fachbereichsleitung und Seminarorganisation
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Python-Entwickler, DFIR-Engineers, Malware- und Artefaktanalysten sowie Maintainer eigener Parser |
| Voraussetzungen: | Sichere Python-Kenntnisse, Grundlagen binärer Datenformate, Hexdarstellung und automatisierter Tests |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, angeleitete Analysen und praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
