Einzelnen Beitrag anzeigen

Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#4

Re: code section lesen bzw. ram editor

  Alt 20. Jun 2008, 13:07
Zitat von Arnulf:
warum durchsuchst du nur die readable sections?
Es gibt (theoretisch) Speicherbereiche, welche nicht lesbar sind (zum Beispiel nur schreibbar).

Zitat von Arnulf:
welche sections muss ich durchsuchen um nur die code section eines programms zu durchsuchen.
Das hängt von dem Programm ab, um das es geht.
Grundsätzlich alle, die "ausführbar" sind.

Zitat von Arnulf:
Also wie finde ich code section bzw. data section oder den heap - wie unterscheide ich das.
Anhand der Eigenschaften des Speicherbereichs.
Wenn du genauere Informationen zu den Speicherbereichen des Moduls benötigst (die Klasse interessiert sich für nichts anderes, also auch kein Heap, etc), dann darfst du den PE-Header im Speicher auslesen (die RVAs wurden vom Windows-Loader bereits in VAs "übersetzt").

Zitat von Arnulf:
dh. reine code sections sind einfach nur readable und nicht writeable.
Sie muss nur "ausführbar" sein.
Wenn man den Bereich untersuchen will, dann braucht man natürlich auch die Möglichkeit den Bereich lesen zu können
Es gibt genug Beispiele in denen Code-Sections schreibbar sind (bzw. Copy-on-Write).

Zitat von Arnulf:
Strings sind hier string literale und werden vielleicht in der data section abgelegt.
Damit könnte es natürlich sein, dass ich alle sections durchsuchen muss die readable sind aber nicht writeable und executeable?
Grundsätzlich wirst du alle lesbaren Bereiche untersuchen müssen. Auch "ausführbare" Bereiche enthalten (sehr oft konstante) Daten.


ps: Es handelt sich ingesamt um ein komplexes Thema, welches bei jedem Projekt neue Fragen aufwirft und entsprechend andere Lösungen erfordert. Der Prototyp diente nur als eine Vorlage, um die grundlegenden Mittel zur Verfügung zu haben, die man in solchen Fällen öfter braucht. Alles außer der ImgUtils.pas bezieht sich nur auf The Witcher - und selbst diese Unit ist teilweise spezialisiert, weil sie diverse Informationen nicht zur Verfügung stellt.
  Mit Zitat antworten Zitat