Da ist erste unterschide was ich sehe SetBrightness@@YA_NII@Z in orginall SetBrightness@@YA_NI@Z in mn7.7.5
Das ist unerheblich.
SetBrightness@@YA_NI@Z ist der Name der Export-Funktion in der MN7
Hardwarelayer.dll und er findet sich auch als Import-Funktion namens
SetBrightness@@YA_NI@Z in der MN7
Navigon.exe wieder. Nur
DAS ist wichtig: entsprechend dem Schlüssel/Schloss-Prinzip muss der Funktionsname in der EXE und der zugehörigen DLL identisch sein! Benennt man ihn in einer der beiden Dateien um, wird sich MN7 beim Aufruf der Funktion darüber beschweren, dass sie nicht in der DLL existiert (und halt crashen).
Dass die Funktion in der MN6
Hardwarelayer.dll SetBrightness@@YA_NII@Z hieß, ist dementsprechend weder wichtig, noch hilfreich. Denn auch in der
MN6.exe findet sie sich als
SetBrightness@@YA_NII@Z wieder -> EXE und DLL passen zusammen (wäre ja auch komisch, wenn nicht).
Kurz: man könnte die Funktion auch in
ALLEN DLLs mal eben
HubbaBubba nennen - solange man sie in den EXE-Dateien ebenfalls zu
HubbaBubba ändert, macht es keinen Unterschied :emoticon-0105-wink: . Denn die
Navigon.exe bzw.
MN6.exe sucht dann halt nach einer Funktion namens
HubbaBubba in der
Hardwarelayer.dll - und solange die vorhanden ist, ist sie zufrieden. Im Grunde genommen ist das nur so, als ob du in einem Buch die Kapitelüberschrift über dem Kapitel selbst und im Inhaltsverzeichnis änderst => das hat auch keinen Einfluss auf den Inhalt des Kapitels.
Fazit: mal eben mit 'nem Hex-Editor im Export-Bereich der
Hardwarelayer.dll rum zu editieren bringt nichts. Meist (wenn man ohne Rücksicht bzw. Hintergrundwissen vorgeht) zerstört man dadurch sogar die Dateiintegrität und macht die DLL unbrauchbar. Die DLL enthält nämlich auch Angaben darüber, in welchem Adressbereich die einzelnen Funktionsnamen zu finden sind... und in welchem Adressbereich die Funktionen selbst zu finden sind. Ersetzt man also einen Funktionsnamen mit einer längeren Bezeichnung und verschiebt dabei mal eben alle folgenden Funktionsnamen, stimmen alle nachfolgenden Adressen nicht mehr und die DLL-Datei wird ungültig.
Am besten nimmt man sich mal ein simples Tool wie den CFF-Explorer (einfach googlen - ist Freeware) und wirft damit einen Blick in EXE und DLL. Wenn ich z.B. damit in die letzte hier verlinkte
Hardwarelayer.dll rein sehe, merke ich, dass die scheinbar zerstört ist (keine der Import/Export-Funktionen werden gefunden):
Du musst angemeldet sein, um Bilder zu sehen.
Bei der vorherigen
Hardwarelayer.dll wurden hingegen "nur" drei Exportfunktionsnamen zu 1½ unbrauchbaren Bezeichnungen verwurstet:
Du musst angemeldet sein, um Bilder zu sehen.
Und nur um das klar zu sagen: ich hab eigentlich auch keinen Schimmer von der Materie. Jemand mit richtig Ahnung lacht mich also mit Sicherheit aus. Aber es bringt halt nunmal nicht viel, wenn sich jemand hieran versucht, der sich noch weniger damit beschäftigt hat als ich :emoticon-0106-cryin .