Zitat:
Ich frag mich nur: Wo braucht man das überhaupt?
Einer der Hauptgründe liegt z.B. dran, daß Viele einfach
so doof sind und und blind die Vorgaben verwenden.
Drum liegen auch fast alle
Delphi-DLLs an der selben Stelle, wenn man mal eigentliche Zieladresse aus den DLLs ausliest.
Nur gibt es da ein Problem, denn an einer Stelle kann nur eine
DLL geladen werden, also müssen Nachfolgende verschoben werden.
Und dann gibt es auch noch den Sicherheitsaspekt, wo dann das System die DLLs absichtlich verschiebt.
Wenn eine
DLL immer an der selben Stelle liegt, dann können Angreifer direkt auf statische Adressen zugreifen und z.B. Buffer-Overruns so auslegen, daß sie geziehlt bestimmte Strukturen angreifen.
Tja, und wenn man nun absichtlich die DLLs jedes Mal an einer anderen Stelle läd, dann kann man nicht mehr so einfach auf diese "festen" Adressen losgehen.