AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Byte in Speicher schreiben

Ein Thema von bundy · begonnen am 26. Apr 2006 · letzter Beitrag vom 27. Apr 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Byte in Speicher schreiben

  Alt 27. Apr 2006, 00:07
Jetzt erklär mir mal bitte jemand eins: Bisher dsachte ich unter Windows NT ff kjönnte man nicht mehr so einbfach in dem Speicher anderer Anwendungen runfuschen. Warum geht das doch so einfach? Oder war mit der Aussage, dass man nicht mehr so einfach im fremden Adressraum schreiben kann ein anderer Sachverhalt gemeint? Wenn ja, welcher?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#12

Re: Byte in Speicher schreiben

  Alt 27. Apr 2006, 00:34
Zitat von Luckie:
Bisher dsachte ich unter Windows NT ff kjönnte man nicht mehr so einbfach in dem Speicher anderer Anwendungen runfuschen. Warum geht das doch so einfach?
Hey Luckie,
vor ein paar Stunden hier angeschnitten:

http://www.delphipraxis.net/internal...=539290#539290

Es dreht sich alles um den virtuellen Adressraum...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Byte in Speicher schreiben

  Alt 27. Apr 2006, 00:40
Ja, das ist mir klar, nur gehört der auch der virtuelle Adressraum ja auch einem fremden Prozess.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#14

Re: Byte in Speicher schreiben

  Alt 27. Apr 2006, 00:47
Jupp, und mit den beiden Funktionen "WriteProcessMemory" und "ReadProcessMemory" kann man darauf zugreifen, sofern man ein Handle mit PROCESS_VM_WRITE und PROCESS_VM_OPERATION zu dem Prozess bekommt. Geht von Win95 bis XP. So steht es zumindestens im PSDK.

Ich hab's allerdings noch nicht ausprobiert. Im Prinzip muss es ja auch irgendwie gehen, sonst würde ja kein Debugger funktionieren.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Byte in Speicher schreiben

  Alt 27. Apr 2006, 00:50
Das muss ich mir noch mal durch den Kopf gehen lassen. Aber nicht mehr heute.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#16

Re: Byte in Speicher schreiben

  Alt 27. Apr 2006, 01:20
Wenn man ein gültiges Handle mit OpenProcess erhalten hat (und mit ensprechenden Rechten) dann kann man die Zielapplikation ohne Probleme mit Write/ReadProcessmemory ändern.
Was sich im Gegensatz zu 9x geändert hat, ist dass man nicht mehr so leicht auf den Speicher > 0x80000000 zugreifen kann. Unter 9x konnte man diesen noch ohne Probleme auslesen aber nicht modifizieren. Unter XP braucht man dazu schon speziellere Rechte
  Mit Zitat antworten Zitat
Frickeldrecktuxer_TM
(Gast)

n/a Beiträge
 
#17

Re: Byte in Speicher schreiben

  Alt 27. Apr 2006, 11:17
Zitat von Luckie:
Jetzt erklär mir mal bitte jemand eins: Bisher dsachte ich unter Windows NT ff kjönnte man nicht mehr so einbfach in dem Speicher anderer Anwendungen runfuschen. Warum geht das doch so einfach?
Definiere "so einfach". Der Prozess, der debuggt, benötigt immer noch das SeDebugPrivilege Privileg, und das ist ein Privileg, daß man Prozessen entziehen kann Falsch ausgedrückt: Wenn der Prozess die entsprechenden Zugriffsarten nicht erlaubt, benötigt man immer noch das SeDebugPrivilege Privileg, um die ACL zu umgehen, und das ist ein Privileg, das man Prozessen (und Usern) entziehen kann.

Anscheinend kennst du deinen eigenen Code nicht Schau dir mal dein LuckieDIPS an, dort schreibst du auch ungefragt in den Explorer-Prozess
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Byte in Speicher schreiben

  Alt 27. Apr 2006, 11:26
Nein tue ich nicht. Ich reserviere mir Speicher im Explorer Prozess, kopiere etwas hinein und lese es aus. Ich ändere nichts im Speicher des fremden Prozesses! Das ist ein großer Unterschied.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Frickeldrecktuxer_TM
(Gast)

n/a Beiträge
 
#19

Re: Byte in Speicher schreiben

  Alt 27. Apr 2006, 11:36
Zitat von Luckie:
Das ist ein großer Unterschied.
Nicht wirklich. Du schreibst in den fremden Adressraum. Auf Page-Ebene gibt es keine weiteren Einschränkungen. Würde mich sehr wundern, wenn Windows hier eine Tabelle enlegen würden "Adresse $a bis $b ist vom geladenen Modul, hier nicht schreiben, Adresse $c bis $d ist von diesem Prozess allokiert worden, der darf hier schreiben, Adresse $e bis $f ist von jenem Prozess allokiert worden, der darf hier schreiben, usw". Unter Strich veränderst du vielleicht nicht die .data-Section des Explorer-Prozesses, aber du bearbeitest seinen Adressbereich. Und dann könntest du auch direkt die .data-Section bearbeiten. Sämtliche In-Memory-Patches und -Hacks funktionieren nicht anders.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz