Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Ingenieure müssen manchmal rückwärts denken, um ein Produkt zu analysieren. Beispielsweise kann ein Maschinenbauingenieur anhand seiner Konstruktion und seiner physikalischen Eigenschaften Rückschlüsse auf die Herstellung eines Produkts ziehen. Sie können möglicherweise sogar dasselbe Produkt herstellen, wenn sie ein gründliches Verständnis davon haben.

Sie können Reverse Engineering auch mit dem Beweis mathematischer Gleichungen vergleichen. Wie wird also Reverse Engineering eingesetzt?

Was ist Reverse-Engineering?

Reverse Engineering ist der Prozess der Analyse eines Systems mit dem Ziel, es zu reproduzieren oder zu verbessern. Wenn Sie sich die Arbeitsbereiche des Reverse Engineering ansehen, sehen Sie, dass Sie es für viele verschiedene Zwecke einsetzen können. Betrachtet man es aus Cybersecurity-Perspektive, ist es möglich, die folgenden Operationen mit Reverse-Engineering-Methoden durchzuführen:

instagram viewer
  • Quellenanalyse von Nicht-Open-Source-Software
  • Schwachstellenanalyse
  • Malware-Analyse
  • Knacken und Patchen

Sie können Reverse Engineering sehen, das heutzutage sogar in Computerspielen verwendet wird. Beispielsweise erstellen Entwickler häufig Software-Mods mit Reverse-Engineering-Methoden.

Im Bereich Reverse Engineering gibt es zwei unterschiedliche Analyseverfahren: statische und dynamische. Sie führen eine statische Analyse durch, wenn Sie ein Programm analysieren, ohne es tatsächlich auszuführen. Eine dynamische Analysemethode hingegen erfordert, dass Sie das Programm ausführen, um sein Verhalten und die von ihm verwendeten Daten zu beobachten.

Bevor Sie jedoch eine Analyse für das Reverse Engineering durchführen, müssen Sie einige wichtige Begriffe kennen Wie Computerarchitektur funktioniert.

Hauptteile der Computerarchitektur

Reverse Engineering ist praktisch unmöglich, es sei denn, Sie verstehen die Computerarchitektur. Sie müssen die vier Hauptteile studieren:

  • Eingang: Eine Reihe von Methoden zur Dateneingabe.
  • Zentralprozessor: Die CPU verarbeitet eingehende Daten und übermittelt sie an ihre Besitzer. Es ist die zentrale Recheneinheit.
  • Speicher: Der Speicherplatz, der Daten während der Verarbeitung vorübergehend enthält.
  • Ausgang: Das Ergebnis, das der Endbenutzer sieht.

Sie können all diese Hauptprobleme anhand eines Beispiels im Hinterkopf behalten, z. B. wenn Sie den Buchstaben A auf Ihrer Tastatur drücken. Wenn Sie darauf drücken, tritt ein Eingabeereignis auf. Nach dieser Phase verarbeitet die CPU die Daten und verwendet einen kleinen Speicherplatz, um sie zu speichern. Schließlich sehen Sie den Buchstaben A auf Ihrem Bildschirm und beenden den Vorgang mit der Ausgabe.

Tauchen Sie ein in die Tiefen der CPU

Wer wirklich Experte für Reverse Engineering werden und tief in dieses Thema eintauchen möchte, braucht detaillierte Kenntnisse über Hardware, Low-Level-Sprachen und insbesondere die CPU. Die wichtigsten Themen, die Sie über die CPU wissen müssen, sind:

  1. Steuergerät: Dieser ist für die Verarbeitung der Daten in der CPU und deren Übergabe an die entsprechenden Felder zuständig. Sie können sich diese Einheit als einen Routing-Kontrollmechanismus vorstellen.
  2. Alu: Dies steht für Arithmetic Logic Unit. Hier finden einige arithmetische und logische Operationen statt. Wenn Sie tiefer in die Mathematik eintauchen, werden Sie feststellen, dass die vier Grundoperationen im Wesentlichen Variationen der Addition sind. Die ALU basiert also auf Aggregation. Beispielsweise ist das Subtrahieren von zwei von drei dasselbe wie das Addieren von minus zwei zu drei.
  3. Register: Dies sind die Bereiche innerhalb der CPU, die die verarbeiteten Daten enthalten. Es gibt verschiedene Arten von Registern, ähnlich wie es verschiedene Arten von Variablen in einer Programmiersprache gibt. Ein Register ist für die Aufrechterhaltung des Typs und der Attribute der ihm zugewiesenen Daten verantwortlich.
  4. Signale: Wenn Sie möchten, dass die CPU viele verschiedene Operationen gleichzeitig ausführt, ist eine Methode erforderlich, um sie zu organisieren. Die Elemente, die dies tun, werden Signale genannt. Jede Transaktion handelt gemäß Signalen, die sicherstellen, dass sie keinen anderen Prozess stört.
  5. Bus: Der Pfad, der von den Daten verwendet wird, um sich von einer Einheit zur anderen zu bewegen. Beachten Sie, wie der Name den Transport andeutet.

Konzepte, die Sie oft im Reverse Engineering hören werden

Das Verständnis, wie die CPU Daten verarbeitet und im Speicher speichert, neben dem Konzept der Register, kann beim Reverse Engineering sehr nützlich sein. Insbesondere können Sie das folgende Diagramm verwenden, um das Konzept des Gedächtnisses besser zu verstehen:

Schließlich müssen Sie für die Reverse-Engineering-Analyse einige grundlegende Konzepte über Register kennen. Sie sind eines der Themen, auf die Sie sich am meisten konzentrieren werden. Hier sind einige Erläuterungen zu Daten, Zeigern und Indexregistern, die Ihnen in kürzester Form nützlich sein werden:

  • 1. EAX: Steht für Akkumulatorregister. Es speichert hier in der Regel Daten, die unter die Kategorie der arithmetischen Operationen fallen.
  • 2. EBX: Steht für Basisregister. Es spielt eine Rolle bei der indirekten Adressierung.
  • 3. EDX: Steht für Datenregister. EDX hilft anderen Registern.
  • 4. EIP: Steht für Instruction Pointer. Enthält die Adresse der auszuführenden Domäne.
  • 5. ESP: Enthält die Basisadresse.
  • 6. ESI: Enthält die Quellindexinformationen.
  • 7. EDI: Behält die Zielindexinformationen bei.

Sie sollten alle diese separat erforschen, um ihre Nuancen zu verstehen. Aber wenn Sie sich die Grundlagen ansehen und versuchen, die Geschäftslogik zu verstehen, wird die Codeanalyse für Reverse Engineering ganz einfach sein, egal mit welcher Prozessorarchitektur Sie arbeiten.

Reverse Engineering beginnt oft mit Maschinencode. Sie verstehen vielleicht viele der oben genannten Begriffe, wenn Sie mit Montage vertraut sind oder diese beherrschen 32-Bit- oder 64-Bit-Prozessorarchitekturen. Wenn Sie die Montage von Grund auf lernen möchten, ist dies beim Reverse Engineering äußerst nützlich.

Was werden Sie mit all dem tun?

Wenn Sie über gute Kenntnisse im Reverse Engineering verfügen, können Sie Codeanalysen durchführen, unabhängig davon, mit welchem ​​​​Betriebssystem oder welcher Prozessorarchitektur Sie arbeiten. So ist es beispielsweise möglich, gecrackte Versionen vieler Programme oder Computerspiele zu finden. Dies ist eine völlig illegale Methode.

Wenn Sie jedoch ein ethischer Cybersicherheitsexperte sein wollen, müssen Sie Reverse Engineers einsetzen, um zu verstehen, warum diese geknackten Programme geknackt werden. Wenn Sie im Reverse Engineering vorankommen möchten oder gerade erst anfangen, wäre es eine gute Wahl, wenn Sie versuchen, mehr über die Beziehung zwischen Hardware und Maschinencode zu erfahren.