![]() |
Relocation Pointer Table aus EXE entfernen
Hal(l)o zusammen, :mrgreen:
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? :gruebel: 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? :gruebel: 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? :gruebel: Luckie hat das, glaube ich, schon mal gemacht. Thanx. DANNYBOY |
Re: Relocation Pointer Table aus EXE entfernen
Meinst Du die Relocations des Dos-Stubs oder das Reloc-Segment des PE-Images?
FYI, ![]() |
Re: Relocation Pointer Table aus EXE entfernen
Ich dachte da erst mal an das Einfachere. :mrgreen: Also die des Dos-Stubs.
|
Re: Relocation Pointer Table aus EXE entfernen
Zitat:
Unter o.g. Link ist auch der Quelltext zu finden. Wenn Du die PE-Daqten verschiebst, darfst Du durch alle Sektionen und etliche PointerToXxx anpassen. |
Re: Relocation Pointer Table aus EXE entfernen
Zitat:
Ich seh' mir den Link gleich mal an. Thanx, NicoDE. :thuimb: |
Re: Relocation Pointer Table aus EXE entfernen
Den selben Link habe ich dir übrigens auch schon in dem anderen Thread gegeben. :roll:
|
Re: Relocation Pointer Table aus EXE entfernen
Zitat:
|
Re: Relocation Pointer Table aus EXE entfernen
In dem Dos Stub werden nicht viele Relocations sein, so daß sich das vermutlich gar nicht lohnt in der Richtung überhaupt was zu machen.
|
Re: Relocation Pointer Table aus EXE entfernen
Ja, ich hab's gestern bemerkt. Bisher bin ich auf keine EXE gestoßen, die
im DOS Stub mehr als 4 Relocations hatte. :kotz: :evil: Das wären ganze 16 Bytes. |
Re: Relocation Pointer Table aus EXE entfernen
Da die meisten Linker trotzdem mehr Platz zwischen MZ- und PE-Header lassen, kannst Du ein paar Bates sparen, indem Du den Stub durch eine kleinere Variante ersetzt und den PE-Teil verschiebst und eventuell die Ausrichtungen der Sektionen optimierst...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz