home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / MISC / ARTFIX09.ZIP / PATCH / PATCH.DOK < prev    next >
Text File  |  1998-05-03  |  6KB  |  137 lines

  1.  
  2.  
  3.                        PATCH v0.11 für OS/2 und DOS
  4.              (c) 1998 by Wilfried Brinkmann, Fido 2:2448/6001
  5.             ──────────────────────────────────────────────────
  6.                               Kurzanleitung
  7.  
  8.  
  9. Vorwort
  10. ───────
  11.   Patch(p).exe dient zum komfortablen Ändern von Binärdateien (EXEcutables).
  12.  
  13.   Die zu ändernden Daten sind in einer ASCII-Datei abgelegt und haben ein
  14.   fest vorgegebenes Format. Der Name dieser Datei MUSS immer identisch mit
  15.   dem Dateinamen der EXE-Datei sein und das Extension '.PSC' aufweisen.
  16.   Um z.B. die Datei ABC.EXE zu patchen muss im Verzeichnis von Patch(p).exe
  17.   (oder im Startverzeichnis) die Datei ABC.PSC vorhanden sein.
  18.  
  19.   Beim Start von Patch(p).exe kann der Dateiname der zu ändernden Datei in
  20.   der Kommandozeile angegeben werden. Wird Patch(p) ohne Parameter gestartet,
  21.   kann der Dateiname in einer Maske eingeben werden. Es ist jeweils der voll-
  22.   ständige Pfad und Dateiname anzugeben.
  23.  
  24.   Fehler die beim Programmlauf auftreten, werden in einem Nachrichtenfenster
  25.   angezeigt und müssen durch Betätigen einer Taste bestätigt werden.
  26.  
  27.  
  28. Befehle in der Patch-Scriptdatei (.PSC)
  29. ───────────────────────────────────────
  30.   Diese ASCII-Datei enthält alle Befehle und Parameter um die Ändrungen
  31.   durchführen zu können. Es könne Leerzeilen und Kommentare verwendet werden.
  32.   Kommentare beginnen mit einem Semikolon (;). Alles was nach einem Semikolon
  33.   steht, wird von Patch(p) ignoriert.
  34.  
  35.   Für die folgende Beschreibung gilt folgende Syntax:
  36.  
  37.      <Parameter>   - Notwendiger Parameter
  38.      [Optional]    - Optionaler Parameter
  39.  
  40.  
  41. Folgende Befehle sind möglich:
  42. ──────────────────────────────
  43.  
  44.   SIZE  <Bytes>
  45.   ─────────────
  46.   <Bytes> ist die Grösse der zu patchenden Datei in dezimaler schreibweise.
  47.   Patch(p) vergleicht diesen Wert mit der Grösse der EXE-Datei.
  48.   Die Bearbeitung wird nur fortgesetzt, wenn die Werte übereinstimmen.
  49.  
  50.  
  51.   COPY  <[[Laufwerk:][\]Pfad]Dateiname.Ext
  52.   ────────────────────────────────────────
  53.   Nach der Überprüfung der zu ändernden Datei kopiert Patch(p) die Original-
  54.   datei. Du kannst entweder eine vollständigen Pfad (mit Laufwerk) angeben,
  55.   oder einen relativen Pfad (ohne Laufwerk). Ein Dateiname muss immer an-
  56.   gegeben werden.
  57.   Ist ein relativer Pfad angegeben, wird Patch(p) das Verzeichnis, in dem
  58.   die Originaldatei vorhanden ist erweitern. Der Pfad wird automatisch
  59.   angelegt, wenn er noch nicht vorhanden ist.
  60.  
  61.  
  62.   REN  <Dateiname.Ext>
  63.   ────────────────────
  64.   Die Originaldatei wird -nachdem alle Modifikationen durchgeführt wurden-
  65.   in den angegebenen Namen geändert.
  66.  
  67.  
  68.   VER  <Dateioffset>  <Daten[+]>
  69.   ──────────────────────────────
  70.   Die Daten der Orinaldatei an <Dateioffset> werden mit den angegebenen
  71.   <Daten> verglichen. Sowohl <Dateioffset> als auch <Daten> MÜSSEN in
  72.   hexadezimaler Schreibweise angegeben werden (0 .. 9, A .. F).
  73.  
  74.   Bei <Daten> müssen für jedes Byte zwei Ziffern angegeben werden. Zwischen
  75.   den Zeichen dürfen KEINE Leerzeichen stehen.
  76.   Beispiel:
  77.     VER 48B8B 83E85030E4       - Überprüft 5 Bytes ab Offset 48B8B
  78.  
  79.   Optional kannst Du ein '+' (Pluszeichen) bei <Daten> anhängen. Damit werden
  80.   mehrerer <Daten> Zeilen zusammengezogen. Die nachfolgende Zeilen dürfen
  81.   dann kein VER <Dateioffset> enthalten, sondern NUR die <Daten>.
  82.   In der letzten Zeile darf KEIN Pluszeichen angehängt werden!
  83.   Beispiel:
  84.     VER 48B8B 83E850+
  85.               30E4             - Überprüft 5 Bytes ab Offset 48B8B
  86.  
  87.   Mit dieser Zeilenteilung erreichst Du grössere Übersichtlichkeit und eine
  88.   bessere Lesbarkeit der Scriptdateien wie das folgende Beispiel zeigt:
  89.     VER 38D61 53+     ; push     ebx
  90.               51+     ; push     ecx
  91.               52+     ; push     edx
  92.               8B18+   ; mov      ebx,[eax]
  93.               89D8    ; mov      eax,ebx
  94.  
  95.  
  96.   CHA  <[$][Dateioffset]>  <Daten[+]>
  97.   ───────────────────────────────────
  98.   Die angebenen <Daten> werden an <Dateioffset> in die Datei geschrieben.
  99.   Sowohl <Dateioffset> als auch <Daten> MÜSSEN in hexadezimaler Schreibweise
  100.   angegeben werden (Siehe auch VER).
  101.  
  102.   Optional kann für den Dateioffsets das Dollarzeichen ($) angegeben werden.
  103.   In diesem Fall wird der Dateioffset eines vorherigen VER verwendet.
  104.   Gleichzeitig wird in diesem Fall auch die Länge der <Daten> von VER und CHA
  105.   verglichen. Stimmt diese nicht überein, wird Patch(p) eine Fehlermeldung
  106.   ausgeben. Du solltest -soweit als möglich- DIESE Methode verwenden.
  107.   Beispiel:
  108.      VER 38D0F 8B4014+      ; mov      eax,[eax+14]
  109.                83E845       ; sub      eax,45
  110.                ;
  111.      CHA $     E85BDAFFFF+  ; call     -000025A5
  112.                90           ; nop
  113.  
  114.  
  115.   @Marke  <Daten[+]>
  116.   ──────────────────
  117.   Wenn das erste Zeichen der Zeile ein Klammeraffe (At-Sign, @) ist, werden
  118.   alle folgenden Zeichen -bis zum nächsten Leerzeichen- ignoriert. Du kannst
  119.   das verwenden, um z.B. Sprungmarken (Labels) deutlich zu machen. Eine
  120.   Funktion haben diese Marken nicht. Sie dienen nur der besseren Lesbarkeit.
  121.   Beispiel:
  122.     CHA $     83E850+       ; sub      eax,50
  123.               7703+         ; jnbe     +03 (@3D3B3)
  124.               83C064+       ; add      eax,64
  125.     @3D3B3:   30E4+         ; xor      ah,ah
  126.               C3            ; ret
  127.  
  128.  
  129. Schlusswort
  130. ───────────
  131.   Alle Tippfehler sind geistiges Eigentum des Verfassers, unterliegen
  132.   dem Urherberrecht und dürfen somit nicht wiederverwand werden ;-))
  133.  
  134. ──────────────────────────────────────────────────────────────────────────────
  135. Wilfried Brinkmann, FidoNet 2:2448/6001                 Hattingen, im Mai 1998
  136. ──────────────────────────────────────────────────────────────────────────────
  137.