AW: Alternative für MapAndLoad
Zitat:
|
AW: Alternative für MapAndLoad
Zitat:
PS: Die durch MapAndLoad gefüllte Datenstruktur LOADED_IMAGE lässt noch mehr zu, als nur die Plattform auszulesen. Grüße Dalai |
AW: Alternative für MapAndLoad
Die MapAndLoad-API gibt es nur als ANSI. (obwohl es die scheinbar erst seit WinXP gibt und die WinNT-Linie eigentlisch schon ewig auf Unicode ist)
Heißt, dass Unicode-Dateinamen damit nicht möglich sind und man sie z.B. durch GetShortPathName in ANSI umwandeln müsste. |
AW: Alternative für MapAndLoad
Ah, jetzt verstehe ich den Zusammenhang. Ja, das ist nachvollziehbar. Vielleicht könnte man mit den Funktionen MapViewOfFile und ImageNtHeader etwas machen, um die Datenstruktur IMAGE_NT_HEADERS füllen zu lassen. Halte ich für besser, als manuell in der EXE rumzusuchen.
Übrigens gibt's MapAndLoad im Win2k auch schon. Grüße Dalai |
AW: Alternative für MapAndLoad
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. |
AW: Alternative für MapAndLoad
Zitat:
Der Code bleibt trotzdem knapp, etwa eine Bildschirmseite. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:25 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