Registriert seit: 13. Jan 2005
391 Beiträge
Delphi XE3 Professional
|
AW: Alternative für MapAndLoad
7. Dez 2020, 15:55
Ich würde die Funktion selbst schreiben, ohne MapAndLoad, sondern einfach mit einem TFileStream, da ist die Dateigröße auch egal und das funktioniert performant.
Ich kann meinen getesteten Code hier teilen, um die Bittigkeit einer EXE zu prüfen, falsch gewünscht.
Edit: LoadLibraryEx() mit LOAD_LIBRARY_AS_DATAFILE, ist sonst was man verwendet um Module (DLLs/EXE usw.) in den Speicher zu laden, und dann dort direkt mit Pointern weiter zu arbeiten. Windows verwendet hier automatisch Paging und wird nur die relevanten Teile laden. Aber wenn etwas mit virtuellen Addressen zu tun hat, muss man trotzdem umrechnen. Und die Offsets in den Dateiheadern muss man auch beachten. Feste Offsets/Konstanten sollte man nicht verwenden, um an die richtige Stelle zu springen.
Geändert von mael ( 7. Dez 2020 um 16:42 Uhr)
|