Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#10

AW: Dynamische Memory Adressen - Startpunkt herausfinden

  Alt 24. Jul 2015, 14:37
(PS: Ich denke "Eintrittspunkt" ist durchaus ein nutzbarer Begriff in dem Zusammenhang wenn man bedenkt, dass es im Englischen "entry point" genannt wird.)
Nein.
Mit der "Basisadresse" meint er "ImageBase", nicht EntryPoint.. Das sind zwei verschiedene Dinge.
Die ImageBase ist üblicherweise die Startadresse des Images (Exe / DLL) im Speicher (meist 0x00400000) und EntryPoint ist eine RVA (relative virtual address) zum ersten Code im ".code" oder ".text" Segment einer exe/dll.
Code:
ImageBase = 0x00400000
EntryPoint = 0x00000400

Address of First Asm Code (entry point) = ImageBase + EntryPoint = ... usw
Edit: Zum eigentlichen Thema - zum Beitraag #8
Wie Neutral General erwähnt hat, muss es nicht so sein, dass die Variable, die du auslesen willst, sich immer an derselben Adresse befindet. Das kann spieltechnisch realisiert sein, oder vlt funkt dir auch ASLR (oder ähnliches) rein. Ist jedoch alles umgehbar, man muss halt nur vorher rausfinde, was für ein Fall vorliegt.

Führ z.B. das hier 2x mal aus:
Delphi-Quellcode:
var
  myVar: ^Integer;
begin
  new(myVar);
  showMessage(IntToHex(myVar, 8));
end;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (24. Jul 2015 um 14:48 Uhr)
  Mit Zitat antworten Zitat