IT Modernisation Services GmbH

Mutabor – verwandelt Binärcode in lesbaren Quellcode

Es passiert häufiger als man annehmen möchte: der Quellcode von Programmen oder Unterprogrammen ist nicht mehr aufzufinden. Leider bemerkt man das oft erst nach vielen Jahren, wenn das Programm gewartet, neu kompiliert oder gar portiert werden soll. Bis zu diesem Moment wird der Objekt Code solcher Programme in der Ladebibliothek vorgehalten und vom Linkage Editor in produktive Lademodule eingebunden: niemand konnte sehen, dass es dazu keinen Quellcode mehr gab.

ITM hat mit Mutabor ein hochwertiges Produkt geschaffen, das aus Binärcode, wie er in Lademodulen vorliegt, wieder für den Menschen lesbaren Quellcode erzeugt, der mit dem ursprünglichen Programm binär und damit funktional identisch ist.

Die Transformation findet in einer Workbench statt, in die das Lademodul eingelesen wird. Diese Arbeitsumgebung stellt in einem ersten (vollautomatischen) Schritt Quellcode her, der kompilierbar ist und den identischen Binärcode erzeugt.
Danach nutzen ITM Spezialisten die vielfältigen Möglichkeiten von Mutabor, um die Lesbarkeit zu verbessern und dem verlorenen Original möglichst nahe zu kommen.

Die wesentlichen Merkmale von Mutabor

  • Liest Lademodule in binärer Form ein und präsentiert sie in der Mutabor Workbench, die im Aufbau einem Assembler Listing ähnelt.
  • Erkennt die Control Sections (CSECT) der eingebundenen Programme.
  • Visualisiert den Code und speichert jede Control Section in eigenen Reitern der Mutabor Workbench.
  • Übersetzt die hexadezimalen Werte in Instruktionen und Daten
  • Enthält eine große Zahl von Regeln, die – vom Benutzer angestoßen – einzelne Statements, Codeteile oder komplette Sections bearbeiten
  • Arbeitet mit Mustererkennung („Pattern Matching„)
  • Transformiert den hexadezimalen Code stets so in Assembler Statements, dass eine Umwandlung des erzeugten Quellcodes wieder den ursprünglichen hexadezimalen Code erzeugt
  • Erkennt die Muster vieler Makroexpansionen und transformiert sie zurück in normale Makroaufrufe. Die Variantenvielfalt ist allerdings derart groß, dass wir mit jedem Projekt neue Muster und Regeln entdecken und hinzufügen müssen.
  • Exportiert den Quellcode einzelner oder aller Control Sections. Falls also ein fehlendes Unterprogramm mit vielen anderen Programmen zusammen gebunden wurde, muss nur der Quellcode dieses Unterprogramms erzeugt werden.
  • Basisregister werden erkannt – automatisch oder manuell mithilfe spezieller Aktionen.
  • Code-Konstrukte wie Register, Basisregister, Indexregister, Datenfelder können eingefärbt werden. Dabei zeigt Mutabor auch an, ob es sich dabei um einen Lese- oder Schreibzugriff handelt.
  • Mutabor kennt alle Hardware-Instruktionen und deren Eigenschaften. Das umfasst neben vielem anderen auch Informationen über implizit verwendete Register oder das Setzen des Condition Code.
  • Sprungziele und Datenfelder erhalten generierte oder frei wählbare Namen.
  • Wenn die Feldbezeichnungen von Datensätzen z.B. aus COPY-Books oder Dateien bekannt sind, können deren Feldnamen automatisch eingepflegt werden.
  • Falls das Lademodul mithilfe von HMASPZAP modifiziert wurde, präsentiert Mutabor diese Änderungen in einem eigenen Reiter der Workbench: Patches, die vor Jahren vielleicht gemacht wurden, gehen also nicht verloren.
  • Wir unterstützen nicht nur z/OS, sondern auch weitere Mainframe-Umgebungen von IBM und anderen Herstellern.

Einsatz

Mutabor wird von erfahrenen Assembler Experten der ITM für Kundenprojekte eingesetzt, stetig weiterentwickelt und gepflegt.

Zurück zu Home