Prozess überwachung

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Samus Aran.

    Prozess überwachung

    Guten Abend, Community!,

    Ich habe leider ein Problem und hoffe das es überhaupt mit vb realisierbar ist.. Also ich möchte das der Prozess "Cheat Engine" Immer wieder beendet wird. Jetzt denkt jeder: wtf?! Das einfachste was es gibt!. So ist es aber nicht! Ich möchte den Prozess nicht einfach über getprocessbyname beenden ,da man ihn einfach umbenennen kann und ihn so trotzdem wieder starten kann =\!
    Ich hoffe ich stelle nicht zu große Anforderrungen aber ich denke es gibt genug Pro´s die mir hier helfen können ;)!

    (Falls das nicht unter vb 08 möglich ist ,dann würde ich mich sehr darüber freuen wenn es in einer Konsolenanwendung unter C++ möglich ist und hoffe das mir jmd das soweit fertig machen kann damit ich verstehe wie es funktioniert.)

    Vielen Dank im Vorraus!
    Wie willst du den sowas realisieren?

    Man bräucht etwas um den Prozess eindeutig zu Identifizieren.

    Was du evtl. machen könntest wären Programm Informationen auslesen und vergleiche, aber dies musst du dann bei jedem Prozess machen und dies könnte ggf. bischel dauern nehme ich mal an.

    Dodo schrieb:

    Man bräucht etwas um den Prozess eindeutig zu Identifizieren.

    Richtig, zum Beispiel so wie es Blizzard mit seinem Warden vorgemacht hat: die laufenden Prozesse werden identifiziert und nach "bekannten" Prozessen durchsucht, indem sie mit einer Art Fingerprints verglichen werden, d.h. Code-Folgen die für diesen Prozess eindeutig sind.

    Würde es in 4 Schritten versuchen:
    - Prozesse auslesen (Process.GetProcesses)
    - Prozess-Handle ermitteln (process.handle)
    - Prozess-Informationen aus dem Memory in einen Buffer einlesen ( ReadProcessMemory API )
    - Buffer nach Codefolgen vergleichen

    Eine Alternative wäre z.B. den Titel des Cheat-Engine Windows zu suchen (über Process.MainwindowHandle ), der ja nicht so leicht durch einfaches umbenennen der .exe Datei gefälscht werden kann.
    Eine Alternative wäre z.B. den Titel des Cheat-Engine Windows zu suchen (über Process.MainwindowHandle ), der ja nicht so leicht durch einfaches umbenennen der .exe Datei gefälscht werden kann.
    Danke schonmal für die vielen Antworten ;). Diese hier hat meine Interesse geweckt! Nun würde ich dich nochmal um eines bitten mir ein beispiel dafür zu geben..Ich hab zwar gegooglet aber iwie kam da nur Müll raus. =\. Ich füge mal ein Screenshot von dem Programm ein :


    Und eine Bitte hätte ich bei dem Bispiel noch. Undzwar das es Jede version von Cheat Engine blockiert. D.h wenn der Titel "Cheat Enginge" beinhaltet sol ler beendet werden. Egal was dahinter für einer Version steht.
    Danke ! ,Sehr gute Community!!
    Vielen dank schonmal (:. Ich kann bloß mit solchen Referenzen nicht viel Anfangen. Daher frage ich nach einem Beispiel nach und lege dieses Beispiel immer auf meinem FTP Server ab ,damit ich immer drauf zugreifen kann. Eine art eigene Referenz ;). Allerdings fehlt dieses Bsp mir =\. Und es ist wirklich dringend ;(
    Sicher! Da hast du prinzipiell auch recht. Normalerweise schaue ich mir ein Bsp(Welches ich über Google finde)an und verstehe den Code.Dann kann ich mit den Referenzen auch mehr anfangen. Allterdings finde ich zu diesem Thema kein Bsp im Internet... ;(.Daher frage ich ja nach. Es ist ja nicht so das ich faul wäre o.ä und euch bzw. dir die Arbeit überlassen möchte ,damit ich mich zurücklehen kann.. Nein! Mein Problem ist halt bloß das ich bei diesem Problem nicht weiß wo ich es angehen soll ,und deswegen frage ich halt nach einem Bsp. Ich hoffe du hast nun verstanden warum ich gerne ein solches Bsp hätte.
    Ja es gibt Codebeispiele. Allerdings ist das ja nciht soo ganz was ich suche^^. Ich suche immernoch ein und jetzt sage ich es deutlich damit mit hoffentlich jmd hilft ,da ich echt schon am verzweifeln bin und schon gefühle 2L Kaffee aus frust getrunken habe!
    Also Das Program soll auslesen ob der Prozess ,welcher im Title "Cheat Engine" enthält aktiv ist. Wenn ja soll er ihn beenden.
    Also bitte keine Sachen mehr wie : Ja schaus dir nochmal an und versuchs. Was meint ihr wohl was ich von 20 Uhr bis um halb 2 gemacht habe wo ich den Thread erstellt habe. Ich weiß das das hier so ziemlich das beste Forum ist ,welches ich kenne! Also enttäuscht mich bitte nicht und helf mir.

    Danke im Vorraus!
    Keiner behauptet dass Du faul bist, aber Du hast jedenfalls dieses Forum nach Threads durchsucht, die auch den von Dir gewünschten Code enthalten. Nur ... Du hast ihn nicht gesehen, da Du anscheinend nur 1:1 Beispiele willst.

    Was sagt dir dieser Code hier ?

    VB.NET-Quellcode

    1. For Each p As System.Diagnostics.Process In System.Diagnostics.Process.GetProcesses
    2. Dim title As String = p.MainWindowTitle
    3. If title <> "" Then MessageBox.Show(title)
    4. Next
    Okay. Vielen Dank für den Code erstmal. Ich habe diesen jetzt fürs erste übernommen.

    Quellcode

    1. If title <> "Cheat Engine" Then MessageBox.Show(title)


    Soweit so gut. Führe ich jetzt das Program aus ,dann kommt in unendlichen abschnitten leere Msgboxen egal ob Cheat Engine läuft oder nicht..Wo ist der Fehler :O? Ich denke mal es ist ein ziemlich einfacher Fehler nur das ich wohl etwas zu viel daran gesessen bin und kaum noch logisch denken kann^^^.