Autor Beitrag
fbiel
Hält's aus hier
Beiträge: 14

win 2000,debian 3.0
D7 Enter,Kylix 3
BeitragVerfasst: Mi 05.11.03 19:30 
hi,

wie kann man einen wert, z.b. eine integervariable an eine adresse im ram speichern.

ich habe jetzt
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure blabla;
var zeiger:^integer;
begin
{Adresse wird von einem Anderen Programm ausgegeben und hier der var zeiger zugeordnet}
zeiger:=Pointer(StrToint(Edit1.text)); 
showmessage('Der Wert an der Stelle '+edit1.text+' ist '+IntToStr(zeiger^));
end;


so, das funktioniert auch solange ich beide programme gleichzeit laufen lasse, is ja logisch. aber wenn ich jetzt das programm beende, wird ja der wert an der adresse...... gelöscht. wie kann ich den wert auch noch nach dem beenden gespeichert lassen, sodass der dann mit dem obigen prg ausgelesen werden kann.
ich weiß das ganze ist eigentlich sinnlos, aber ich brauchs für die schule.


mfg
fbiel
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mi 05.11.03 19:48 
IMHO ist das nicht möglich, vor allem nicht unter dem heutigen Windows. Jede Applikation bekommt dabei einen bestimmten Speicherbereich zugewiesen und hat keinen Zugriff auf anderen. Deswegen wirst Du es mit Delphi nicht hinkriegen in den Speicherbereich anderer Programme zu schreiben, sondern nur in dem Dir zugewiesenen. Und damit kann ein anderes Programm nicht aus Deinem oder auch Deinem ehemaligen Speicherbereich lesen.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 05.11.03 20:12 
Klar geht das. Mir VirtualAllocEx speicher im Fremden Prozess reservieren und dne kann man mit ReadMemory auslesen und mit WriteMemory beschreiben. Eine andere Möglichkeit wären InjectDLLS oder MemoryMappedFiles. Siehe dazu auch das Hooking Tutorial von Assarbad: www.luckie-online.de/tutorials/assarbad/
UC-Chewie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 531

WinXP
D5 Ent
BeitragVerfasst: Mi 05.11.03 20:49 
Ich würd MMFs (Memory Mapped Files) empfehlen. Ist relativ einfach, VirtualAlloc ist etwas komplizierter anzuwenden.

_________________
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mi 05.11.03 21:34 
OK, ich nehm alles zurück und behaupte das Gegenteil. ;-)
fbiel Threadstarter
Hält's aus hier
Beiträge: 14

win 2000,debian 3.0
D7 Enter,Kylix 3
BeitragVerfasst: Do 06.11.03 17:38 
hi,

irgendwie versteh ich net wie das so gehen soll. kann vielleicht jemand nen kleinen sourcecode posten. am besten mit der VirtualAllocEx Methode, das scheint mir am besten, soll ja net so kompliziert sein, is ja nur für schule.


thx
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Do 06.11.03 20:06 
fbiel hat folgendes geschrieben:
is ja nur für schule.

Wenn das eine Hausaufgabe sein sollte, dann wird dir dein Lehrer das dazu notwendige Knowhow, sofern er es euch nicht selbst beigeracht hat, wohl nicht abkaufen.

_________________
Ist Zeit wirklich Geld?
fbiel Threadstarter
Hält's aus hier
Beiträge: 14

win 2000,debian 3.0
D7 Enter,Kylix 3
BeitragVerfasst: Fr 07.11.03 15:58 
AndyB hat folgendes geschrieben:
fbiel hat folgendes geschrieben:
is ja nur für schule.

Wenn das eine Hausaufgabe sein sollte, dann wird dir dein Lehrer das dazu notwendige Knowhow, sofern er es euch nicht selbst beigeracht hat, wohl nicht abkaufen.


wir sollen uns das ja selbst erabrieten,
aber hat sich jetzt schon erledigt, ich habs noch hinbekommen
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 07.11.03 16:29 
Es gebietet eigentlich die Höflichkeit, dass wen man selbst die Lösung findet, sie auch hier postet. :roll: