Seite 3 von 3

Re: Assembler code editieren

Verfasst: 16.12.2011 03:44
von Danilo
ts-soft hat geschrieben:Aber es hat ja anscheinend keinen Sinn, Dir diese Begriffe zu erklären, da Du ja sonst
noch weiter beleidigend wirst. Bzw. ist mir auch nicht klar, wie meine Aussage mit Deinem
Beispiel zusammen hängen sollte.
Tut mir sehr leid, ts-soft - ich bitte um Verzeihung!

2 Flaschen Wein waren offensichtlich zu viel. :oops:

Re: Assembler code editieren

Verfasst: 18.12.2011 03:15
von Thorium
Die Base Address der .exe ist immer die gleiche. Da musst du garnichts berechnen. Befindet sich der Code in einer DLL musst du in Olly nach der Image Base Address der DLL schauen und sie von der Speicheradresse subtrahieren. Im Programm ermittelst du dann die Image Base und addierst das Offset.

Sowas wie globale Speicheradresse gibt es nicht. Jeder Prozess hat seinen eigenen Adressraum und da der PE Loader immer zuerst die .exe in den Adressraum mappt liegt diese immer an der gleichen Adresse bei jedem Rechner.

Re: Assembler code editieren

Verfasst: 18.12.2011 03:22
von Thorium
Danilo hat geschrieben: Klingt komisch dass das gehen soll, da ich meine Du musst die Code Section suchen und von dort aus
patchen.
Nein, muss er nicht. OllyDbg gibt ihm die virtuelle Adresse, da braucht er garnichts mehr suchen oder berechnen. Auch wenn der Code in einer DLL ist, muss nur die Image Base Adress ermittelt werden. Wofür man nicht den Header sondern die WinAPI verwenden sollte, denn es steht dem PE Loader frei eine DLL an jede beliebige Adresse zu laden. Was er auch tun muss, wenn die Speicherregion schon reserviert ist.