Zitat von
SirThornberry:
Code:
Ein
Handle ist vergleichbar mit einem Autokennzeichen oder einer Hausnummer. Der Wert spielt dabei keine Rolle und ist für einen Programmierer eigentlich auch uninteressant.
Stimmt nicht ganz. Wenn du das einem Cracker sagst wird der lachen. Das Fenster-
Handle ist die Adresse im Speicher oder so. Und wenn ich bei nem anderen Programm im speicher ändern will dann hilft mir das
Handle schon.
Und wenn mir das ein Cracker sagt muss ich lachen. Ein
Handle ist auch keine Adresse im Speicher. Windows verwaltet die Handles so viel ich weiß in einer internen Tabelle. Und diese liegt im Speicher.
Zitat:
Nächster Punkt
Code:
Windows schützt auch jeden Adressraum eines Prozesses vor unberechtigten Zugriff. Ein Prozess hat unter Windows nur Zugriff auf seinen eigenen Adressraum, aber nicht auf den Adressraum eines anderen Prozesses.
Ich glaub schon das du damit recht hast aber wie ist es dann möglich das Trainer spiele beeinflussen können? Die schreiben doch dann im speicher von dem anderen Programm rum oder nicht?
Es geht. Man kann zum beispiel eine
DLL mit eigenen Code in den Adressraum des fremden Prozesses injezieren und dann hat man auch Zugriff auf den Adressraum. Oder unter NT kann man mit einer
API Funktion (VirtualAllocEx) Speicher im adressraum einer fremden Anwendung reservieren, den man dann mit WrtiteProcessMemory beschreiben und mit ReadProcessMemory in einen identischen Speicherbereich im eigenen Adressraum kopieren kann. Siehe dazu meine LuckieDips.
@alceus: Viren haben mit dem Speicherschutz nichts zu tun, denke ich. Sondern mit den Benutzerrechten unter denen virenverseuchte E-Mailanhänge ausgeführt werden. Aber das soll hier nicht Thema sein.