AGB  ·  Datenschutz  ·  Impressum  







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

Speicher ändern

Ein Thema von vlees91 · begonnen am 27. Mär 2005 · letzter Beitrag vom 30. Mär 2005
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von Luckie
Luckie

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

Re: Speicher ändern

  Alt 28. Mär 2005, 23:51
Zitat von w3seek:
Dazu braucht man erst einmal einen handle zu diesem fremden Prozess der die genau gleichen Rechte benoetigt wie WriteProcessMemory. Somit funktioniert auch das nicht wenn man die benoetigten Rechte nicht hat.
Darauf will ich hinaus, dass das hoffentlich eben nicht so einfach geht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#12

Re: Speicher ändern

  Alt 28. Mär 2005, 23:52
Zitat von Luckie:
Folgendes:
Wenn man mit VirtualAllocEx sich Speicher im fremden Prozess alloziiert, dann sind diese Rechte nicht nötig, um in diesen Speicherbercih mit WrteProcessMemory zu schreiben. Da es VirtualAllocEx aber nur unter NT basierenden Systemen gibt, ist unter Win9x ein Hack nötig.
Was? Dann könnte man ja das windows-eigene Sicherungssystem umgehen. Denn VirtualAllocEx() benötigt nur eine Untermenge der Rechte die WriteProcessMemory() bräuchte. Du kannst ja mal gern versuchen bei VirtualAllocEx() als Flag (letzter Parameter) PAGE_READONLY anzugeben und danach mit WriteProcessMemory() dort hinein zu schreiben. Du hast nicht mehr Rechte! Probier's aus.

Zitat von Luckie:
Und wenn man doch mit WriteProcessMemory wild in fremden Adressräumen rumschreiben könnte, dann würde ich vom Glauben abfallen. Ich hege immer noch die Hoffnung, dass nur ganz spezielle Prozesse die sich die nötigen Rechte (PROCESS_VM_WRITE und PROCESS_VM_OPERATION) beschaffen können. Ich dachte da an so was wie Dienste oder Treiber. Wobei mir Dienste schon wieder unheimlich wären.
Ähem ja. Mir war so als hätte ich das gesagt.
Treiber sind übrigens keine Prozesse, alle laufen (ähnlich wie Dienste, welche unter services.exe laufen) im Kontext des Systemprozesses.

Zitat von Luckie:
Darauf will ich hinaus, dass das hoffentlich eben nicht so einfach geht.
... deine Aussage (siehe Zitat: "dann sind diese Rechte nicht nötig [...]") ist das genaue Gegenteil. Genau genommen widersprichst du dir seit deinem ersten Beitrag in diesem Thread mehrfach.

Ich habe manche Zeit damit verloren;
Denn ein vollkommner Widerspruch
Bleibt gleich geheimnißvoll für Kluge wie für Thoren.


Zitat von w3seek:
Mit treibern lassen sich auch saemtliche Schutz- und Sicherheitsmechanismen umgehen und auch selbstverstaendlich das Betriebssystem zum Absturz bringen.
Dienste gehören ebenfalls zu dieser Klasse, die sich TCB (Trusted Computing Base) nennt. Es gibt auch ein entsprechendes Privileg. Übrigens: zum Absturz bringen kann ich Windows (die NT-basierten) auch mit einem nichtprivilegierten Prozess und der Übergabe von verrückten Parametern an eine bestimmte Win32-Registryfunktion.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Speicher ändern

  Alt 28. Mär 2005, 23:59
Zitat von Mephistopheles:
Zitat von Luckie:
Folgendes:
Wenn man mit VirtualAllocEx sich Speicher im fremden Prozess alloziiert, dann sind diese Rechte nicht nötig, um in diesen Speicherbercih mit WrteProcessMemory zu schreiben. Da es VirtualAllocEx aber nur unter NT basierenden Systemen gibt, ist unter Win9x ein Hack nötig.
Was? Dann könnte man ja das windows-eigene Sicherungssystem umgehen. Denn VirtualAllocEx() benötigt nur eine Untermenge der Rechte die WriteProcessMemory() bräuchte. Du kannst ja mal gern versuchen bei VirtualAllocEx() als Flag (letzter Parameter) PAGE_READONLY anzugeben und danach mit WriteProcessMemory() dort hinein zu schreiben. Du hast nicht mehr Rechte! Probier's aus.
War etwas unglücklich ausgedrückt von mir und ich hätte vorher mal etwas genauer recherchieren sollen. Sorry. Natürlich braucht man für VirtualAllocEx auch diese Rechte. Aber dann kann man auch nur in den Speicher rumschreiben, den man sich selber mit VirtualAllocEx reserviert hat. Ich mache es ja selber so:
Delphi-Quellcode:
  ListView := GetDesktopListView;
  ProcessId := 0;
  GetWindowThreadProcessId(ListView, @ProcessId);
  Process := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_OPERATION or
    PROCESS_VM_READ or PROCESS_VM_WRITE, False, ProcessId);
  if Process <> 0 then
  try
    // Lokalen und entfernten (im Zielprozess) Puffer anlegen
    Size := SizeOf(TLvItemBuffer);
    MemLocal := VirtualAlloc(nil, Size, MEM_COMMIT, PAGE_READWRITE);
    MemRemote := VirtualAllocEx(Process, nil, Size, MEM_COMMIT,
      PAGE_READWRITE);
    if Assigned(MemLocal) and Assigned(MemRemote) then
    try
      // Anzahl der Symbole ermitteln und in einer Schleife durchlaufen
      IconCount := SendMessage(ListView, LVM_GETITEMCOUNT, 0, 0);
Ist aus meinen LuckieDIPS.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#14

Re: Speicher ändern

  Alt 29. Mär 2005, 00:08
Zitat von Mephistopheles:
Dienste gehören ebenfalls zu dieser Klasse, die sich TCB (Trusted Computing Base) nennt. Es gibt auch ein entsprechendes Privileg.
Damit hast du teilweise natuerlich recht, ich weiss worauf du hinaus willst aber ein Dienst ist eine ganz normale user mode anwendung die das System keinesfalls zum Absturz bringen kann. Da ein Dienst dem SYSTEM angehoert, hat dieser natuerlich entsprechend privilegien um bestimmte operationen durchfuehren zu koennen. Ein Treiber dagegen laeuft im kernel mode, d.h. hat absolute Kontrolle ueber das system.


Zitat von Mephistopheles:
Übrigens: zum Absturz bringen kann ich Windows (die NT-basierten) auch mit einem nichtprivilegierten Prozess und der Übergabe von verrückten Parametern an eine bestimmte Win32-Registryfunktion.
Das mag vielleicht auf NT4 (Stichwort LPC) und in einigen wenigen Faellen auch win 2000 zutreffen, Microsoft hatte es einfach verschlafen system calls zu sichern. In neueren Versionen von windows sollte das allerdings nicht mehr der Fall sein, mir ist jedenfalls keine solche Luecke mehr begegnet (wenn man mal von win32k und dessen unbegruendeten schluchten absieht). Worauf ich hinaus will ist dass das eindeutig Bugs sind und im Idealfall nicht existieren sollten. Wenn dir tatsaechlich noch so eine Luecke bekannt ist, bitte melde das an Microsoft.
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#15

Re: Speicher ändern

  Alt 29. Mär 2005, 00:14
Zitat von w3seek:
Ein Treiber dagegen laeuft im kernel mode, d.h. hat absolute Kontrolle ueber das system.
Wenn das nicht geil ist, zusammen mit meinem Motto:
Ein Theil von jener Kraft,
Die stets das Böse will, und stets das Gute schafft.


Zitat von w3seek:
Das mag vielleicht auf NT4 (Stichwort LPC) und in einigen wenigen Faellen auch win 2000 zutreffen, Microsoft hatte es einfach verschlafen system calls zu sichern. In neueren Versionen von windows sollte das allerdings nicht mehr der Fall sein, mir ist jedenfalls keine solche Luecke mehr begegnet (wenn man mal von win32k und dessen unbegruendeten schluchten absieht). Worauf ich hinaus will ist dass das eindeutig Bugs sind und im Idealfall nicht existieren sollten. Wenn dir tatsaechlich noch so eine Luecke bekannt ist, bitte melde das an Microsoft.
Getestet habe ich es auf Windows 2000 - erst mit XP wurde ja SYSENTER eingeführt (ups wir driften aber vom Thema ab ), aber ich werde es nochmal auf einem XP-System testen. Und ggf. melden.

Zitat von Luckie:
Aber dann kann man auch nur in den Speicher rumschreiben, den man sich selber mit VirtualAllocEx reserviert hat.
Das tust du zwar, aber versuche doch mal spontan ein paar beliebige Seiten (0x40000 ist sehr interessant *g*) mit VirtualProtectEx() so zu modifizieren, daß du Schreibrechte hast. Und voila ... auch dorthin kannst du schreiben. Ganz ohne VirtualAllocEx() ... und ohne Zauberei.
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#16

Re: Speicher ändern

  Alt 29. Mär 2005, 00:19
Zitat von Mephistopheles:
erst mit XP wurde ja SYSENTER eingeführt
SYSENTER (intel)/SYSCALL (amd) hat damit herzlich wenig zu tun.

Zitat von Mephistopheles:
ups wir driften aber vom Thema ab
allerdings
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#17

Re: Speicher ändern

  Alt 29. Mär 2005, 00:33
Zitat von w3seek:
SYSENTER (intel)/SYSCALL (amd) hat damit herzlich wenig zu tun.
Was genau meintest du dann? Insbesondere bei den Registryfunktionen hat sich zwischen W2K und WXP nichts anderes geändert. Und du spieltest darauf an, daß du einen Absturz nur unter Windows NT, maximal 2000, erwarten würdest.
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#18

Re: Speicher ändern

  Alt 29. Mär 2005, 00:40
das wuerde jetzt zu stark vom thema abschweifen, ich erklaere es dir geren per PM (schreib mich an) oder in einem extra topic.
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Speicher ändern

  Alt 29. Mär 2005, 17:14
1. streitet euch nicht oder wie ich es nennen soll( mahct das über pn's)
2. die adresse ändert sich nie und ist auf jedem pc gleich.
3 geht das jetzt oder nicht (anscheinend ja sachon, denn wie sollten den sonst trainer für spiele funktionieren (außer sie simulieren tasteneingaben)?
vlees91
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#20

Re: Speicher ändern

  Alt 29. Mär 2005, 17:26
1. Das , dass weiter per pns gereglt wirde wurde oben schon gesagt.
2. Wenn du die Suche benutzten würdest hättest du schon lange etwas gefunden.
3. Sie wollten dir "nur" helfen...
Mfg ReDoX
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 03:55 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