Inhalt einer Speichaddresse auslesen

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
k11kx8
Beiträge: 9
Registriert: 01.02.2015 19:28

Inhalt einer Speichaddresse auslesen

Beitrag von k11kx8 »

Mal angenommen ich hätte ein Programm mit diesem Code:

Code: Alles auswählen

Openconsole()
Repeat
printn(x)
input()
x=x+1
Until dieweltistschoen ;endlosschleife
und ich hätte die Speicheraddresse von der Variable x,
wie könnte ich nun den Wert von x aus einem fremden Programm heraus durch die WinAPI (Readmemoryaddress...) auslesen?
Ich finde zwar schon verschiedene Dinge zu dieser Frage, aber helfen konnte mit bisher nichts
Könnte mir daher bitte jemand sagen bzw schreiben wie dies in Pb mit der WinAPI gehen würde?
Einfach nur ein Beispielcode wäre hilfreich :D
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Inhalt einer Speichaddresse auslesen

Beitrag von RSBasic »

Erstmal die Frage mit dem Ermitteln der Speicheradresse einer Variable: Einfach @ davor setzen.

Code: Alles auswählen

debug @x
Ist das fremde Programm von dir oder ein komplett fremdes Programm, welches nicht von dir geschrieben wurde?
Wenn es dein Programm ist, dann suche mal nach "sharedmemory".
Ansonsten die Frage: Was möchtest du genau machen? Nur Variablenwerte ermitteln? Was ist das Ziel deines Vorhabens?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
k11kx8
Beiträge: 9
Registriert: 01.02.2015 19:28

Re: Inhalt einer Speichaddresse auslesen

Beitrag von k11kx8 »

Danke, die Speicheraddresse hab ich jedoch schon
Im Prinzip möchte ich wissen, wie ich den Wert eine Variable eines Fremden Programmes auslese (ändern wäre auch ganz schön, jedoch ist dies wahrscheinlich relativ einfach nachzuvollziehen wenn man weiß wie man den Wert ausliest)
Wenn das Programm von mir wäre, wäre es relativ einfach auf eine bestimmte Art den Wert einer Variable zu übermitteln,
Somit möche ich z.b. ein Programm mit dem oben angegebenen Quellcode haben, wobei ein Fremdes (bzw anderes) Programm den Wert der Variable x aus diesem ausliest (also in diesem Falle wären beide Programme von mir, jedoch ist dies irrelevant da es mein Ziel ist zu wissen, wie ich aus einem beliebigen Programm den Wert einer bestimmten Variable auslesen kann)

:D du hast aber schon relativ schnell geantwortet

(mal hoffen das ihr/du versteht was ihr meint)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Inhalt einer Speichaddresse auslesen

Beitrag von ts-soft »

k11kx8 hat geschrieben:da es mein Ziel ist zu wissen, wie ich aus einem beliebigen Programm den Wert einer bestimmten Variable auslesen kann
1. Variablen existieren nicht mehr in einer Executable.
2. Jedes Programm hat seinen eigenen virtuellen Speicher.

Ohne vorhergehende Maßnahmen, ist es unmöglich, x aus irgendeinem Programm, festzustellen.

Ansonsten einfach mal nach Trainer suchen.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
k11kx8
Beiträge: 9
Registriert: 01.02.2015 19:28

Re: Inhalt einer Speichaddresse auslesen

Beitrag von k11kx8 »

In dem Falle habe ich von der Variable im Quellcode gesprochen
Das jedes Programm seinen eigenen Speicherblock hat, ist mir klar
Ich habe schon nach vielen Dingen gesucht aber nichts hilfreiches gefunden, daher frage ich ja hier,
soweit ich weiß kann ich mit Openprocess oder so die Permissions dafür bekommen
und dann mit Readmemoryaddress(processhandle,speicheraddresse,buffer,größe des buffers,gelesene bytes)
den Wert der jeweiligen Addresse auslesen, jedoch hat dies auf jede Art und Weise wie ich es bisher probiert habe noch nicht funktioniert
Wäre nett wenn mir da jemand etwas sagen bzw schreiben könnte :D
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Inhalt einer Speichaddresse auslesen

Beitrag von Bisonte »

Wie gesagt : Mal nach Trainer suchen.

Zum anderen würde es auch helfen, wenn man wüsste, welches Programm, das nicht von Dir ist, ausgelesen werden soll.
Es gibt Programme, da haben die Entwickler manch ein "Teufelszeug" erfunden, um es so einem schwerer zu machen, etwas
auszulesen oder gar zu ändern...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
k11kx8
Beiträge: 9
Registriert: 01.02.2015 19:28

Re: Inhalt einer Speichaddresse auslesen

Beitrag von k11kx8 »

Es geht mir ja nicht darum von einem bestimmten Programm auszulesen,
sondern generell z.b. von einem mit dem oben beschriebenen Quellcode, wenn ich wüsste
wie dies gehen würde, würde ich bei komplexeren Programmen dies schon rausfinden können :D
k11kx8
Beiträge: 9
Registriert: 01.02.2015 19:28

Re: Inhalt einer Speichaddresse auslesen

Beitrag von k11kx8 »

Also kann man davon ausgehen das ihr davon keine Ahnung habt?
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: Inhalt einer Speichaddresse auslesen

Beitrag von edel »

Du kannst annehmen was du willst, oben steht allerdings wonach du suchen kannst. Im Forum gibt es mehr als genug Beispiele.
k11kx8
Beiträge: 9
Registriert: 01.02.2015 19:28

Re: Inhalt einer Speichaddresse auslesen

Beitrag von k11kx8 »

Ich habe danach gesucht aber keine guten/sinnvollen gefunden,
daher frage ich ja :mrgreen:
Antworten