Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Programme beenden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.11.2003, 08:03 Uhr
~RedEagle
Gast


Ich möchte gerne ein Programm schreiben, das beim Ausführen einige Hintergrundprogramme schließt (z.B. RealPlayer start center || Norton || AllChars || usw.)

Bedingungen:
Windows Kansole,
C++
!!Bin Anfänger!!

Danke schon mal im Vorraus

MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.11.2003, 09:12 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


falls du mit "Norton" Norton Antivirus o.ä. meinst, kannste das "beenden" vergessen. die lassen sich nicht abwürgen (höchstens nach neustart).

Ansonsten:

OpenProcess
und
TerminateProcess
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.11.2003, 13:18 Uhr
~RedEagle
Gast


Hast du kein Beispiel????
Nur die Befehle bringen mir nicht viel weil ich sie nicht anwenden kann
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.11.2003, 14:47 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


@Spacelord, beim Antivirus bin ich mir nicht sicher, beim Personal Firewall jedoch lässt er

a) kein CreateRemoteThread zu (habs ausprobiert)
b) startet er sich wieder selbst (2 Prozesse die sich überwachen, ähnlich wie bei Apache)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
08.11.2003, 15:03 Uhr
Spacelord
Hoffnungsloser Fall


Ok,war wie gesagt ungetestet.Schade dass ich beide Programme nicht auf dem Rechner hab.Würde mich schon mal reizen auszutesten ob man die ans Abschmieren kriegt!
Wenn die kein CreateRemoteThread zulassen kann es sich ja auch nur um Api-Hooking handeln das man ja auch wieder irgendwie umgehen könnte.
Die einander überwachenden Prozesse werden ja warscheinlich auf Basis irgendwelcher Kernelobjekte(Mutex?) funktionieren.Kann man solche Objekte auf Treiberebene manipulieren?


MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.11.2003, 18:28 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du kannst auch beide prozesse gleichzeitig abwürgen. Wenn die Zeit zwischen den Kills klein genug ist ist es weg...

Api-hooking? nein braucht man nicht, man muss nur die sicherheitseinstellungen des eigenen prozessen richtig einstellen, dann wird sowas blockiert
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.11.2003, 20:25 Uhr
0xdeadbeef
Gott
(Operator)


Ich finde es trotzdem interessant, dass noch niemand auf die Idee gekommen ist, bei derart offensichtlichen Dingen ein secure-by-default zu ziehen. Wenn ich will, dass jemand an meinen Prozess was ranklatschen will, sage ich das auch explizit. Default sollte imnsho sein, dass keiner außer mir in meinem Speicher rumwuselt. Aber das bin nur ich und meine Vision von halbwegs sicheren Computern. Funktioniert CreateRemoteThread eigentlich auch übers Netzwerk, so a la DCOM?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: