PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : können Programme auf den Speicher anderer Programme zugreifen?


rotalever
2008-06-26, 15:54:41
Wenn ein Programm seine Daten im Hauptspeicher abspeichert, dann liegen sie da ja physikalisch drin. Theoretisch könnte man also mit einem andern Programm auf diese Speicherbereiche zugreifen. Erlaubt das Betriebssystem (Windows) dies, oder wird es effektiv unterbunden?

Gast
2008-06-26, 16:14:01
Die Programme "sehen" nur ihren virtuellen Adressraum. Das OS macht dann die Zuweisung von virtuell auf real. Daher sollte es einem Programm nicht möglich sein direkt auf den (realen) Speicher zugreifen zu können.

rotalever
2008-06-26, 17:05:44
Die Programme "sehen" nur ihren virtuellen Adressraum. Das OS macht dann die Zuweisung von virtuell auf real. Daher sollte es einem Programm nicht möglich sein direkt auf den (realen) Speicher zugreifen zu können.
Ok. Ich schließe daraus, dass der zugewiesene Speicher eines Programms vor bösen Einblicken geschützt ist, sofern keine Lücke im OS vorhanden ist.

pest
2008-06-26, 18:11:02
Ok. Ich schließe daraus, dass der zugewiesene Speicher eines Programms vor bösen Einblicken geschützt ist, sofern keine Lücke im OS vorhanden ist.

ich weiß nicht wie es jetzt ist, aber ich hab das früher mit jedem debugger gemacht (auch winxp)

Andi_669
2008-06-26, 18:16:04
Natürlich geht das, es gibt genügend Trainer für Games die genau das machen u. z.B. einen alle Waffen zu geben usw. :|
ein vernünftiger Virenscanner sollte das aber verhindern, mein Kaspersky hat jedenfalls gemeckert als ich so einen Trainer bei Serious Sam benutzt habe.:rolleyes:

Michbert
2008-06-27, 00:26:37
Wie schon gesagt ist bei heutigen Betriebsysteme durch die Speicherverwaltung ausgeschlossen dass sich Programme speichermäßig in die Quere kommen.
Wenn Programme auf den Speicher anderer Prozesse zugreifen, dann tun sie das wohl eher über eine Schnittstelle des Systems und diese wird auch nicht jeden Zugriff erlauben, wobei es aus Sicht des Sicherheitskonzepts des Systems wohl unbedenklich ist, einem Benutzer Zugriff auf den Speicher aller von ihm ausgeführten Prozesse zu geben...

Hab ich zwar auch noch nie verwendet, aber so oder ähnlich wirds funktionieren ;)

del_4901
2008-06-27, 01:18:19
http://msdn.microsoft.com/en-us/library/ms681674(VS.85).aspx
Damit kann man effektiv in den Speicher, anderer Programme schreiben.
Speicherschutz ist zwar was schönes, das schützt aber nur die Programme vor unabsichtlichen Zugriff auf den Speicher.
Wenn ich will kann ich auf meinem Rechner machen was ich will. Die nötigen Benutzerrechte vorrausgesetzt.

Gast
2008-06-27, 05:50:38
Im Not schreibt man sich einfach einen Treiber der in Ring 0 des Windows OS operiert und dann hat man Vollzugriff, genau wie der Kopierschutz StarForce auch.

rotalever
2008-06-27, 10:51:42
Aber wie verhindert dann zum Beispiel ein Passwortmanager, oder eine andere Verschlüsselungssoftware, dass der Key, den der Benutzer eingibt, aus dem RAM gelesen wird?

RaumKraehe
2008-06-27, 10:58:20
Aber wie verhindert dann zum Beispiel ein Passwortmanager, oder eine andere Verschlüsselungssoftware, dass der Key, den der Benutzer eingibt, aus dem RAM gelesen wird?

Gar nicht. ;) Mit Glück liegt das PW wenigstens verschlüsselt im Speicher.

Deswegen ist von der Nutzung von PW-Managern eigentlich auch abzuraten.

Crazy_Chris
2008-06-27, 11:41:03
Mich würde mal der Sourcecode eines Trainers (für irgendein Spiel) interessieren. Will mal sehen wie man dort heran geht. :biggrin:

rotalever
2008-06-27, 12:02:30
Gar nicht. ;) Mit Glück liegt das PW wenigstens verschlüsselt im Speicher.
Das bringt dann doch gar nichts. Der Schlüssel für das Verschlüsseln ist ja auch wieder im Speicher.

Crazy_Chris
2008-06-27, 12:05:53
Das bringt dann doch gar nichts. Der Schlüssel für das Verschlüsseln ist ja auch wieder im Speicher.

jo, knackbar ist wohl alles. Ist nur eine Frage des Aufwandes. :biggrin:

RaumKraehe
2008-06-27, 12:38:59
Das bringt dann doch gar nichts. Der Schlüssel für das Verschlüsseln ist ja auch wieder im Speicher.

Nö bringt nichts, aber ist zumindest noch eine kleine Hürde. ;)

pest
2008-06-27, 12:43:29
also schwierig fand ich WinRAR da das mit UPX gepackt war...aber das kann man alles hacken :eek:

pollux
2008-07-03, 14:17:56
Aber wie verhindert dann zum Beispiel ein Passwortmanager, oder eine andere Verschlüsselungssoftware, dass der Key, den der Benutzer eingibt, aus dem RAM gelesen wird?

bei keepass läufts wie folgt:


http://keepass.info/help/base/security.html
In-Memory Passwords Protection

While KeePass is running, your passwords are stored encrypted in process memory. For this, the ARC4 encryption algorithm is used, using a random, 12 bytes long key.

This means that even if you would dump the whole KeePass process memory to disk, you couldn't find the passwords (at least not in plain text). Note that this only applies to the password field, not to the user names, etc. because of performance reasons.

When you are copying a password to the clipboard for example, KeePass first decrypts the password field, copies it to the clipboard and immediately re-encrypts it using the random key.

Additionally, KeePass erases all security-critical memory when it's not needed any more, i.e. it overwrites these memory areas before releasing them (this applies to all security-critical memory, not only the passwords field).

rotalever
2008-07-03, 15:21:40
Und wo wird der random 12bytes long key gespeichert?

Gast
2008-07-03, 15:25:31
http://msdn.microsoft.com/en-us/library/ms681674(VS.85).aspx
Damit kann man effektiv in den Speicher, anderer Programme schreiben.
Speicherschutz ist zwar was schönes, das schützt aber nur die Programme vor unabsichtlichen Zugriff auf den Speicher.
Wenn ich will kann ich auf meinem Rechner machen was ich will. Die nötigen Benutzerrechte vorrausgesetzt.

Hm wieso hat Windows überhaupt so eine Funktion?
Unter Linux gibt es sowas doch garnicht oder täusch ich mich grad?

del_4901
2008-07-03, 15:52:23
Hm wieso hat Windows überhaupt so eine Funktion?
Unter Linux gibt es sowas doch garnicht oder täusch ich mich grad?
Du täuscht, sowas gibs mit Sicherheit auch dort. Sowas braucht man nämlich fürs Debugging.

Gast
2008-07-03, 16:20:47
Achja an debuggen hab ich jetzt garnicht gedacht :)
Dafür ist unter Linux ptrace() da was es wohl auch unterstützt in den Speicher von einem anderen Prozess zu schreiben

Ectoplasma
2008-07-04, 20:04:28
Das Ganze sollte einem sagen, dass man nicht immer als Admin fungieren sollte, sondern nur als User oder Power User. Schad-Software kann dann nicht in Speicherbereiche des Systems schauen.

Gast
2008-07-04, 21:57:44
afaik kann unter windows ein prozess mit user rechten in alle prozesse des selben users zugreifen.

Ectoplasma
2008-07-05, 15:22:59
afaik kann unter windows ein prozess mit user rechten in alle prozesse des selben users zugreifen.

Du solltest dies hier zu Vista lesen mein lieber Gast:


Windows Vista introduces protected processes to enhance support for Digital Rights Management. The system restricts access to protected processes and the threads of protected processes.


The following specific access rights are not allowed from a process to a protected process:

...
PROCESS_VM_OPERATION
PROCESS_VM_READ
PROCESS_VM_WRITE
...



Die oben genannten Access Rights bestimmen den Zugriff auf den Speicher anderer Prozesse. Ein Protected Process erlaubt den Zugriff nicht, auch wenn er vom selben User ist. Desweiteren benötigt man (auch unter WinXP) ein Debug Privileg, welches man explizit einem User erteilen muss, bevor ein Prozess in den Speicher eines anderen Prozesses des selben Useres schauen darf. Alles klar ;)