Einzelnen Beitrag anzeigen

Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#1

Relocation Pointer Table aus EXE entfernen

  Alt 17. Mär 2004, 09:50
Hal(l)o zusammen,
Ich möchte versuchen aus einer EXE-Datei den Relocation-Pointer Table
zu entfernen und entwickele hierzu gerade ein Konzept. Mir fehlen
noch ein paar Schritte. Also, hier mal die notwendigen Schritte in NICHT chronologischer
Reihenfolge:

1) Einstiegspunkt muss neu berechnet werden: CS:IP; SS:SP
2) Relocation-Pointer Entries werden auf Null gesetzt
3) Daten werden hinter der Table um <relocation pointer entries * 4> nach links verschoben
4) Lastpage Size wird um <relocation pointer entries * 4> reduziert
5) Page count muss ggf. geändert werden (eher unwahrscheinlich, aber dennoch möglich)

Da bleiben jetzt noch 3 Fragen.

A) Steht die Relocation Table unmittelbar vor dem Loadmodule oder vor dem PE Header?

B) Wenn ich alles hinter dem Relocation Table um <relocation pointer entries * 4> Bytes
nach links verschiebe, dann muss ich am Ende der Datei die <relocation pointer entries * 4>
Bytes abschneiden. Wie mache ich das in Assembler?
Würde ich die Überbleibsel mit NOPs auffüllen, dann würde die Datei nicht kleiner werden.

C) Was muss ich noch alles beim PE Header modifizieren?


Luckie hat das, glaube ich, schon mal gemacht.

Thanx. DANNYBOY
How much wood would a wood-chuck chuck if a wood-chuck would chuck wood?
Check this out.
DANNYBOY
  Mit Zitat antworten Zitat