![]() |
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 ![]() 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 |
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. |
Re: EXE mal wieder
Zitat:
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: |
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: ![]() |
Re: EXE mal wieder
Zitat:
...:cat:... |
Re: EXE mal wieder
Zitat:
@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: |
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.
|
Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
Zitat:
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: |
Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
|
Re: Was sind Relocation Pointer Table und Overlaynumber (EXE
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 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