Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Was sind Relocation Pointer Table und Overlaynumber (EXE)? (https://www.delphipraxis.net/18119-sind-relocation-pointer-table-und-overlaynumber-exe.html)

Dannyboy 15. Mär 2004 09:06


Was sind Relocation Pointer Table und Overlaynumber (EXE)?
 
Ich hoffe, dies hier ist die richtige Sparte für das Thema.

Da ich versuche ein sich selbst extrahierendes Archiv zu erstellen und mir empfohlen wurde, mich
erst einmal mit der EXE-Struktur zu befassen, stelle ich hier mal 2 konkrete Fragen dazu.

Im Voraus die Information an Euch, dass ich mich natürlich bereits mit der Materie befasst habe.
Unter www.wotsit.org habe ich z.B. die Struktur von EXE-Dateien studiert.
Nur leider werden hier einfach Tatsachen geschildert, ohne diese zu erklären. (Das erinnert uns
doch an so manchen Professor :mrgreen: ).

Beim untersuchen von den EXE-Headern fiel mir auf, dass manche EXE-Dateien gar keine (null)
Einträge im Relocation Pointer Table haben. Es stellt sich mir ohnehin die Frage:

1) Wozu braucht man den Relocation Pointer Table, wenn doch der Einstiegspunkt der EXE mittels
CS:IP und der Stack mittels SS:SP ermittelt werden kann? :gruebel:

Und dann gibt es im EXE-Header noch die sogenannte Overlay Number, mit der ich auch gar
nichts anfangen kann, also stellt sich mir Frage Numero 2

2) Was ist die Overlay Nummer und wozu braucht man die? :gruebel:

Und damit ich solche Informationen gleich mal sammeln kann, kann mir der ein oder Andere von Euch
vielleicht noch einen guten URL geben, bei dem man solche spezifischen Dinge nachlessen kann? :gruebel:

Danke schon mal.

DANNYBOY

Luckie 15. Mär 2004 09:14

Re: EXE mal wieder
 
Wähle bitte ein aussagekräftigeres Topic. Unter "Exe mal wieder" kann sich niemand was vorstellen.

Aber wozu muss man das Exe Format kennen, um in SFXArchiv zu bauen? Häng die Dateien eine Exe dran und diese Exe mit den angehängten Dateien kopiert selbige dann auf die Festplatte. Sie dazu auch meine SFXTools, von meiner Homepage.

Dannyboy 15. Mär 2004 09:31

Re: EXE mal wieder
 
Zitat:

Zitat von Luckie
Wähle bitte ein aussagekräftigeres Topic. Unter "Exe mal wieder" kann sich niemand was vorstellen.

Ok, stimmt. :oops:
Kann ich das im Nachhinein eigentlich ändern?

@Luckie: Danke für den Hinweis, ich sehe mir das mit dem SFXArchiv gern mal an. :thuimb:

Mich interessieren immer noch die Antworten auf meine Fragen.
Weiss das jemand vielleicht? :gruebel:

LarsMiddendorf 15. Mär 2004 09:40

Re: EXE mal wieder
 
Exe Dateien benötigen keine Relocation Table, weil sie immer als erstes Modul in den virtuellen Addressraum geladen werden und daher immer an die bevorzugte Addresse geladen werden können, weil der Speicher noch frei ist. Bei DLL's ist das natürlich anders und in der Relocation Table sind die Addressen angegeben bei denen im Speicher die Differenz zwischen der optimalen Ladeaddresse und der tatsächlichen aufaddiert wird. Delphi fügt immer Relocations hinzu aber es gibt auch Tools mit denen man sie wieder entfernen kann damit die Exe Datei kleiner wird.
Overlays gibt es unter Windows nicht mehr.
Eine gute Beschreibung vom PE Format gibt es hier:
http://msdn.microsoft.com/msdnmag/is...03/PE2/toc.asp.

sakura 15. Mär 2004 09:42

Re: EXE mal wieder
 
Zitat:

Zitat von Dannyboy
Kann ich das im Nachhinein eigentlich ändern?

Ja. Du gehst auf den http://www.delphipraxis.net/template.../icon_edit.gif Schalter über Deinem ersten Beitrag und änderst den Titel.

...:cat:...

Dannyboy 15. Mär 2004 09:56

Re: EXE mal wieder
 
Zitat:

Zitat von sakura
Zitat:

Zitat von Dannyboy
Kann ich das im Nachhinein eigentlich ändern?

Ja. Du gehst auf den http://www.delphipraxis.net/template.../icon_edit.gif Schalter über Deinem ersten Beitrag und änderst den Titel.
...:cat:...

Gesagt, getan. :coder:

@LarsMiddendorf

Danke schon mal für die Erläuterung. Interessant daran ist, dass
man laut Deiner Aussage den Relocation Pointer Table gar nicht mehr
benötigt.

Könnte ich 100%ig davon ausgehen, dass die Datei noch
funktioniert, wenn ich den kompletten reloc. Table entfernen würde?
:gruebel:

LarsMiddendorf 15. Mär 2004 10:33

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Der Visual C++ Linker fügt beim Linken mit Release Einstellungen gar keine Relocations in die Exe Dateien ein. In der Datei Notepad.exe sind z.B. auch keine.

Dannyboy 15. Mär 2004 10:42

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Zitat:

Zitat von Dannyboy
Beim untersuchen von den EXE-Headern fiel mir auf, dass manche EXE-Dateien gar keine (null) Einträge im Relocation Pointer Table haben.
DANNYBOY

@ LarsMiddendorf :
Yo, das habe ich auch entdeckt, aber könnte ich auch bereits bestehene Relocs. aus
der Exe entfernen oder wäre sie dann kaputt? :gruebel:

Luckie 15. Mär 2004 11:02

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Aus einer Exe ja. Aus einer DLL nein.

Link: http://www.jrsoftware.org/striprlc.php

Dannyboy 15. Mär 2004 11:26

Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
 
Zitat:

Zitat von Luckie
Aus einer Exe ja. Aus einer DLL nein.

Ok danke, das probier' ich mal aus (ASM). :thuimb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.
Seite 1 von 4  1 23     Letzte »    

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