Suche Helfer und Lehrer zur Bewältigung von Hobbyprojekt
-
Aber irgendwo muss dem Programm ja auch die Startadresse zugewiesen werden und das muss man ja irgendwo auslesen können oder?
-
Startadresse des Programms?
-
Halt ab da, wo die ganzen Adressen anfangen für das Programm. Damit ich dann nicht jedes mal die neue Adresse für das Programm im C Programm reinschreiben muss, damit ich werte auslesen und reinschreiben kann.
-
Tja, wie schon von @hustbaer erwähnt, kann das eine langwierige Geschichte sein, an gewisse Werte zu kommen (wenn das Programm zB. besonders viele (verkettete) Strukturen im dynamischen Speicher (Heap) anlegt).
-
rhino-du schrieb:
Halt ab da, wo die ganzen Adressen anfangen für das Programm. Damit ich dann nicht jedes mal die neue Adresse für das Programm im C Programm reinschreiben muss, damit ich werte auslesen und reinschreiben kann.
Meinst du quasi die Stackadresse der main-Funktion? Ja, die kann man irgendwie bekommen. Aber dir ist schon bewusst, dass typische Programme viele Daten nicht auf ihrem Stack speichern?
-
Cheat Engine sagt mir z.B. die Adresse für den 1. Wert den ich brauche:
gmaLib.dll+12B694
und für Wert 2:
gmaLib.dll+12B698also wird die Adresse in abhängigkeit von der Adresse der gmaLib.dll eigentlich immer gleich, also der Unterschied zwischen gmaLib.dll und dem 1./2. Wert.
Jetzt müsste ich dann nur die "Adresse" von der gmaLib.dll nach jedem Programm start neu abfragen und das ist das Problem was mich nicht weiter bringt.
-
rhino-du schrieb:
Jetzt müsste ich dann nur die "Adresse" von der gmaLib.dll nach jedem Programm start neu abfragen und das ist das Problem was mich nicht weiter bringt.
Gregson schrieb:
Wenn das Programm neu startet, einfach die Basisadresse der DLL holen (CreateToolhelp32Snapshot(TH32CS_SNAPMODULE...) plus dem offset ist dann wieder genau die Codestelle...
-
Ja danke! Jetzt hab ich, kriege nach jedem neustart die neue Adresse! Danke!
-
Ich stehe vor einem ähnlichen Problem.
kann mir jemand ein codebeispiel posten zum ermitteln des basepointers?
-
Es wurde doch bereits alles dazu gesagt... ?