Softwareanalyse

Ein Programm ist keine Black Box.

Es ist eine kompakte Aufzeichnung von Entscheidungen und Annahmen.

Bei der Softwareanalyse wird diese Aufzeichnung wieder in etwas umgewandelt, womit Ingenieure fundierte Entscheidungen treffen können.

Was wir rekonstruieren

Wir rekonstruieren Details, die Dokumentation, Herstellerangaben und gewöhnliches Debugging nicht liefern:

  • Fehlerpfade hinter Abstürzen und sporadischen Fehlern
  • Grenzen zwischen nativen, verwalteten und virtualisierten Komponenten
  • Datenstrukturen, Funktionen und interne Schnittstellen
  • Dateiformate, Protokolle und Konfigurationsspeicher
  • Kontrollfluss, Datenfluss und Laufzeitverhalten

Wo das hilfreich ist

Unsere Leistung ist vor allem bei Systemen mit hohen Sicherheitsanforderungen oder schwer zu beobachtenden Systemen von großem Nutzen: Windows-Anwendungen, Systemdienste, interne Komponenten und Treiber; Anwendersoftware unter Linux und Unix; Embedded-Firmware, RTOS-Ziele, Bootloader, Virtualisierungssoftware und Trusted Execution Environments.

Zu den üblichen Architekturen zählen unter anderem x86, x86-64, ARM, Thumb und AArch64.

Wie es abläuft

Wir beginnen mit den noch vorhandenen Artefakten: dem Programm und allen verfügbaren Hintergrundinformationen.

Darauf aufbauend kombiniert unsere Arbeitsweise Reverse Engineering, Debugging, Tracing, Instrumentierung und hypothesengestütztes Testen. Wenn herkömmliche Tools nicht ausreichen, entwickeln wir kleine, speziell auf das Problem zugeschnittene Tools.

Das Ziel ist nicht eine Ansammlung von Dekompiler-Ausgaben. Das Ziel ist es, herauszufinden, wie die Software funktioniert, weshalb sie sich so verhält und wie damit weiter zu verfahren ist.

Verwertbare Ergebnisse

Abhängig vom Problem können folgende Ergebnisse hervorgehen:

  • Ein präziser technischer Bericht
  • Eine Ursachenerklärung
  • Rekonstruierter Quellcode, Datenstrukturen und Schnittstellen
  • Ein Programm-Patch, eine Neuimplementierung oder eine Neuentwicklung

Kontakt

Wenn dies einem Problem ähnelt, mit dem Sie gerade konfrontiert sind, melden Sie sich bitte bei uns und teilen Sie uns alle verfügbaren Einzelheiten mit.