AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Der Compilier Schlater {$IMAGEBASE $XXXXXXXX}
Thema durchsuchen
Ansicht
Themen-Optionen

Der Compilier Schlater {$IMAGEBASE $XXXXXXXX}

Ein Thema von Win32.API · begonnen am 7. Jul 2005 · letzter Beitrag vom 7. Jul 2005
Antwort Antwort
Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#1

Der Compilier Schlater {$IMAGEBASE $XXXXXXXX}

  Alt 7. Jul 2005, 20:23
Hi,
kann mir jemand mal ein beispiel zeigen wie man IMAGEBASE einsetzt?
Oder wofür man es sinvoll nutzem kann?

Win32.API
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Der Compilier Schlater {$IMAGEBASE $XXXXXXXX}

  Alt 7. Jul 2005, 20:30
Imagebase gibt die Adresse an im Adressraum des Prozesses an, an die ein Image geladen wird. Normal ist $00400000. Auf diese Adresse sind alle Sprünge berechnet im Code. So, wenn jetzt eine DLL geladen wird und diese hat auch als Imagebase die Adresse $00400000 geht das natürlich nicht und sie wird an eine höhere Adresse geladen. Jetzt wurde sie aber mit der Imagebase Adresse $00400000 kompiliert, ergo stimmen die Adressen nicht mehr und müssen von Windows mit Hilfe des Reallocationtables in dem Modul neu berechnet werden. jetzt könnte man, wenn man eine DLL für sein prgramm schreibt die Imagebase Adresse auf einen anderen Wert setzen, macht man aber eigentlich nicht, weil man ja nicht weiß, ob nicht schon Windows an diese geänderte Adresse eine DLL geladen hat und dann müssten die Adressen im Modul doch wieder neu berechnet werden. Hak es unter "gut zu wissen" ab und kümmer dich nicht weiter drum.

Nachtrag, den Reallocatiotable kann man theoretisch aus einer Exe entfernen und so die Größe der Exe verringern. Aus DLL sollte man es aus obigen Gründen nicht tun, da dann Windows die Sprungadresse in der DLL nicht neu berechnen kann, wenn sie an eine andere Adresse geladen wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#3

Re: Der Compilier Schlater {$IMAGEBASE $XXXXXXXX}

  Alt 7. Jul 2005, 20:37
Zitat:
Hak es unter "gut zu wissen" ab und kümmer dich nicht weiter drum. Wink
Danke für dem Tipp jetzt habe ich verstanden wofür es da ist und warum man es an manchen stellen braucht oder nicht braucht.
Danke

Win32.API
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Der Compilier Schlater {$IMAGEBASE $XXXXXXXX}

  Alt 7. Jul 2005, 22:25
Ich habe auf meiner Homepage moch mal einen etwas überarbeiteten Artikel dazu verfasst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr.
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