003
08.11.2003, 14:21 Uhr
Spacelord
Hoffnungsloser Fall
|
@RedEagle: Darum solltest du dich wohl auch selber bemühen,sonst könnte Flo dir ja gleich dein Programm schreiben! Wenn die MSDN-Beschreibung der Funktionen dir nichts(!!) sagt solltest du dich mal fragen warum!? Der grobe Ablauf ist folgender: 1.Du besorgst dir mit EnumProcesses die ID´s aller Prozesse. 2.Du besorgst dir mit Open Process ein Handle auf den jeweiligen Prozess. 3.Bu besorgst dir mit GetModuleBaseName den Namen des Exe-Files Das ist immer das erste zurückgelieferte Element! 4.Du schliesst den Prozess mit TerminateProcess falls der Name der Exe einer derjenigen ist die du schliessen möchtest. Desweiteren sei erwähnt dass es mit den Toolhelp32 Funktionen einen alternativen Weg gibt.Erkundige dich halt selber mal!
@Flo: Ohne es jetzt getestet zu haben,aber man bekommt jeden Prozess "abgewürgt"(allerdings mit einem unschönen Fenster der Art "Speicherverletzung in blablub....Der Prozess wird geschlossen.."). Genau genommen muss man dafür sogar nichts anderes machen als CreateRemoteThread falsch(!!!) anzuwenden.
MSDN: CreateRemoteThread may succeed even if lpStartAddress points to data, code, or is not accessible. If the start address is invalid when the thread runs, an exception occurs, and the thread terminates. Thread termination due to a invalid start address is handled as an error exit for the thread's process. This behavior is similar to the asynchronous nature of CreateProcess, where the process is created even if it refers to invalid or missing dynamic-link libraries (DLLs). Lustig dass der "zu-manipulierende"-Prozess bei einem falschen Aufruf terminiert . Ist natürlich Schrott und neuer Reizstoff für unseren notorischen Linuxverfechter aber jetzt war ich sooolange nicht mehr hier,da kann man ja mal wieder ein wenig Benzin ins Feuer gießen .
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes. |