Der ProcessExplorer kommt als 32bit EXE auf die Platte, besitzt aber in der Ressource weitere Dateien, wie einen Treiber und eine 64bit Version, die dann mehr oder weniger transparent gestartet wird. Im ProcExp sieht man selbst, dass da zwei Prozesse gestartet werden und der letzte procexp64.exe heißt.
Hallo Dezipaitor, leider sehe ich in keinem Prozeßanzeiger (Taskmanager, Prozeßexplorer, mein Programm „Prozesse“) einen 64-Bit-Ableger des Prozeßexplorers (unter Windows 7 64 Bit).
Hallo Assarbad, auch Dir vielen Dank!
Mit vollen Rechten solltest du auch in der Lage sein 64bittige Prozesse abzuschießen.
Volle Rechte verpasse ich dafür unter Windows 7 auch meinem Programm „Prozesse“ (32 Bit), so einfach ist es also nicht. Dennoch benötige ich eine 64-Bit-Version, um auch an die „Systemprozesse“ (wurde von Dir weiter oben korrekter spezifiziert) heranzukommen, deshalb meine Portierung zu Lazarus.
Allerdings wenn deine Methode des Abschusses ist, Code zu injizieren wird es nix, solange du eine
DLL benutzt. Dann brauchst du mindestens eine 64bittige
DLL.
Nein, das ist mir viel zu kompliziert (bin froh, daß ich die
DLL-Injektion per Hook in einem anderen Programm hinbekam). Es sind einfache TerminateProcess, TerminateThread, SetPriorityClass und SetThreadPriority.
Der ProcExp benutzt mehrere EXE-Dateien (und SYS-Dateien) welche extrahiert werden. BinResTo, meine Funktion von vor ein paar Jahren bildet das nach, aber es gibt auch andere Varianten welche
VCL-Klassen benutzen.
Dann kann er diese aber geschickt verstecken, denn, wie schon gesagt, es taucht nur eine Exe-Datei in den Prozeßlisten auf.
Schöne Weihnachten!
Edit: Kommando zurück. Nach dem Start des Prozeßexplorers (32 Bit) unter 64 Bit gebiert dieser anscheinend ein 64-Bit-Pendant, legt es auf der Platte ab und startet dieses.