2.4 – Selbstmodifizierender Code

 

Erklären Sie, warum auf einem “Von Neumann”-Rechner selbstmodifizierender Code möglich ist und welche Vor- und Nachteile dieser mit sich bringt.

Lösung

Auf einem ”Von Neumann”-Rechner teilen sich Programm und Daten denselben Arbeitsspeicher. Insofern ist es möglich, einen eigentlich als Datum vorgesehenen Speicherinhalt als Befehl zu interpretieren (sofern dieses Datum als Befehl decodierbar ist). Ein Befehl kann aber auch einen Speicherinhalt, der als Befehl vorgesehen war, modifizieren und so den abzuarbeitenden Maschinencode gezielt manipulieren.

Vorteile:

  • Programme können kompakter geschrieben werden, es wird eleganter dynamischer Code möglich
  • Schutz vor ”Reverse Engineering”

Nachteile:

  • Validierung und Verifikation des Maschinencodes ist kompliziert
  • Schwierige oder sogar unmögliche Portierung der Programme auf andere Architekturen (starke Abhängigkeit des Programms von der Architektur des Rechners)

Ähnliche Artikel

Kommentar verfassen