![]() |
Prozess pulverisieren
Hi,
Habe hier mal eine sehr nützliche Procedure falls man einen Prozess beenden will:
Delphi-Quellcode:
Gruß
procedure PulverizeProcess(hProcess: THandle);
const BUFFERSIZE = 4096; var c,i: Cardinal; buffer: Pointer; begin GetMem(buffer,Kilobyte*4); FillChar(buffer,BUFFERSIZE ,0); i := 0; while i < $FFFFFF do begin WriteProcessMemory(hProcess,Pointer(i),buffer,BUFFERSIZE ,c); inc(i,BUFFERSIZE); end; FreeMem(buffer); end; procedure PulverisizeWindow(WindowName: String); var wnd: hWnd; id: Cardinal; hProc: THandle begin wnd := FindWindow(nil,PChar(WindowName)); GetWindowThreadProcessId(wnd,id); hProc := OpenProcess(PROCESS_ALL_ACCESS,false,id); PulverizeProcess(hProc); CloseHandle(hProc); end; Neutral General |
Re: Prozess pulverisieren
Hallo!
Warum heisst das so komisch? :shock: Und du kannst es sicher noch viermal schneller machen :gruebel: Liebe grüsse Laufi |
Re: Prozess pulverisieren
Warum Byteweise schreiben, wenn Windows eh immer Pageweise schreibt?
D.h. 4KB-Puffer anlegen und den mit FillChar nullen. Danach gleich den gesamten 4-KB-Puffer schreiben ... |
Re: Prozess pulverisieren
Zitat:
Habs verbessert :) |
Re: Prozess pulverisieren
Was ist der Unterschied zu TerminateProcess?
|
Re: Prozess pulverisieren
Delphi-Quellcode:
so sieht's doch besser auch:
const Kilobyte = 1024*1024; // das ist aber ein Megabyte !
Delphi-Quellcode:
procedure PulverizeProcess(hProcess: THandle);
const BUFSIZE = 4096; |
Re: Prozess pulverisieren
oh Mist, stimmt...
|
Re: Prozess pulverisieren
Zitat:
IMO macht ein solcher Beitrag keinen Sinn, wenn nur eine Funktion ohne irgendwelche Erklärung gepostet wird, oder? |
Re: Prozess pulverisieren
Zitat:
*PUSH* |
Re: Prozess pulverisieren
Er überschreibt einige Kontrollstrukturen. Dadurch zwingt er Windows den Prozess zu terminieren, weil sie ungültig sind. Wirklichen Sinn machts aber nicht. Wobei ich mir nicht mal sicher bin, daß er das wirklich vor hatte. Weil dann hätte er die Adressen direkt ermittelt, statt einfach wie wild die ersten 16 MB des Prozesses zu überschreiben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz