719624

Der Umgang mit DEBUG.EXE

Anforderung

Zeitaufwand

Problem: Wenn Sie gezielt einige Bytes in einer Datei ändern möchten, ist ein Eingriff mit einem Ascii-Editor meistens zu riskant: Möglicherweise erwischen Sie die falsche Stelle, oder Sie ändern versehentlich ein Byte zuviel. Welche Alternativen gibt es?

Lösung: Relativ bequem zu bedienen sind Hex-Editoren wie Diskedit (Norton Utilities) oder Hex Workshop (Shareware, 20 Dollar, Download etwa unter http://32bit.bhs.com/default.asp). Sie zeigen jeweils die exakte Offset-Position an und erlauben nebenbei den Zugriff auf besondere Bereiche wie etwa FAT, Bootsektor oder physikalisch intakte, aber logisch nicht mehr zugängliche Festplatten. Die meisten Aufgaben sind allerdings auch mit dem Utility DEBUG.EXE zu lösen, das allen Microsoft-Systemen beiliegt.Debug ist schwer zu bedienen, hat aber gegenüber Diskeditoren einen wesentlichen Vorteil: Es läßt sich über ein Script steuern. Das Scriptdebug p.exe < script.txtetwa lädt die Datei P.EXE und arbeitet dann die in SCRIPT.TXT enthaltenen Anweisungen ab. Diese Script-Datei muß unformatierten Ascii-Text enthalten und könnte so aussehen:e4AC01 0Awq(E)nter springt an die Offset-Adresse 4AC. Hier werden die zwei Bytes "01 0A" eingesetzt, mit (W)rite gespeichert, und (Q)uit beendet Debug.Sie sollten es sich zur Regel machen, vor einem solchen Eingriff, der natürlich auch ohne Script direkt am Debug-Prompt ("-") möglich ist, die jeweilige Datei unter anderem Namen zu sichern. Die Abbildung zeigt, wie Sie Sicherungskopie und Script mit Hilfe einer Batchdatei erstellen können.Wichtig: Beim Anspringen einer bestimmten Hex-Adresse mit (E)nter ist immer eine (historisch bedingte) Eigenart von DEBUG.EXE zu berücksichtigen: Debug lädt eine Datei immer an Adresse Hex 100 statt an 0. Das heißt, daß Sie zu der echten Adresse 100 (Hex) addieren müssen, um sie mit Debug bearbeiten zu können. Lautet die Adresse etwa 3AC, müssen Sie sie unter Debug folgerichtig mit "e4AC" anspringen.

0 Kommentare zu diesem Artikel
719624