Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Relocation Pointer Table aus EXE entfernen (https://www.delphipraxis.net/18354-relocation-pointer-table-aus-exe-entfernen.html)

Dannyboy 17. Mär 2004 09:50


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

NicoDE 17. Mär 2004 10:28

Re: Relocation Pointer Table aus EXE entfernen
 
Meinst Du die Relocations des Dos-Stubs oder das Reloc-Segment des PE-Images?
FYI, http://www.jrsoftware.org/striprlc.php

Dannyboy 17. Mär 2004 10:34

Re: Relocation Pointer Table aus EXE entfernen
 
Ich dachte da erst mal an das Einfachere. :mrgreen: Also die des Dos-Stubs.

NicoDE 17. Mär 2004 10:41

Re: Relocation Pointer Table aus EXE entfernen
 
Zitat:

Zitat von Dannyboy
Ich dachte da erst mal an das Einfachere. :mrgreen: Also die des Dos-Stubs.

Einfach würde ich das nicht nennen :)
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.

Dannyboy 17. Mär 2004 10:51

Re: Relocation Pointer Table aus EXE entfernen
 
Zitat:

Zitat von NicoDE
Einfach würde ich das nicht nennen :)
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.

Pssst, das habe ich bisher so schön verdrängt. :zwinker:
Ich seh' mir den Link gleich mal an. Thanx, NicoDE. :thuimb:

Luckie 17. Mär 2004 11:32

Re: Relocation Pointer Table aus EXE entfernen
 
Den selben Link habe ich dir übrigens auch schon in dem anderen Thread gegeben. :roll:

Dannyboy 17. Mär 2004 12:00

Re: Relocation Pointer Table aus EXE entfernen
 
Zitat:

Zitat von Luckie
Den selben Link habe ich dir übrigens auch schon in dem anderen Thread gegeben. :roll:

Oooh! :oops: :oops: :oops:

LarsMiddendorf 18. Mär 2004 13:46

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.

Dannyboy 18. Mär 2004 13:49

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.

NicoDE 18. Mär 2004 15:41

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 16:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz