Thema: Delphi Speicher ändern

Einzelnen Beitrag anzeigen

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