Sinnlose Prozesse filtern

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Mono.

    Sinnlose Prozesse filtern

    Guten Abend,

    ich mache gerade eine Software womit ich sinnfreie Prozesse "ausfindig" machen will.

    Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. With ListView1
    4. ' ListView-Control "einstellen"
    5. .View = View.Details
    6. .Sorting = SortOrder.Ascending
    7. .FullRowSelect = True
    8. ' Spalten erstellen
    9. .Columns.Add("Prozess", 100, HorizontalAlignment.Left)
    10. .Columns.Add("Dateiname", 250, HorizontalAlignment.Left)
    11. .Columns.Add("pid", 50, HorizontalAlignment.Right)
    12. End With
    13. End Sub
    14. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    15. Dim oItem As ListViewItem
    16. With ListView1
    17. ' ListView-Inhalt löschen
    18. .Items.Clear()
    19. ' alle Prozesse durchlaufen
    20. For Each oProcess As Process In Process.GetProcesses
    21. ' Prozess-Infos ermitteln und im ListView anzeigen
    22. oItem = .Items.Add(oProcess.ProcessName)
    23. Try
    24. oItem.SubItems.Add(oProcess.MainModule.FileName)
    25. Catch
    26. oItem.SubItems.Add("")
    27. End Try
    28. oItem.SubItems.Add(oProcess.Id.ToString)
    29. Next
    30. End With
    31. End Sub
    32. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    33. With ListView1
    34. If .SelectedItems.Count > 0 Then
    35. If MsgBox("Aktuellen Prozess wirklich beenden?",
    36. MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
    37. ' Prozess-Objekt anhand Prozess-ID erstellen
    38. Dim oProccess As Process = Process.GetProcessById(
    39. Val(.SelectedItems(0).SubItems(2).Text))
    40. Try
    41. ' Prozess beenden/zerstören
    42. oProccess.Kill()
    43. Catch ex As Exception
    44. ' Fehlermeldung...
    45. MsgBox("Fehler beim Beenden des Prozess." & vbCrLf & ex.Message.ToString)
    46. End Try
    47. End If
    48. End If
    49. End With
    50. End Sub


    Mit diesen Code bekomme ich schon einmal alle laufenden Prozesse in einer Listbox aufgelistet wo ich mit 2 Buttons einmal Prozesse abrufen kann und mit dem anderen die Prozesse "killen" kann.

    Kurzes funktionsbeispiel: Es geht hierbei um eine SOftware die bei jedem start seinen Namen ändert der Name beinhaltet immer 12 Zeichen die "random" sind wie z.B.: 2s4an99j4na4 wie kann ich das gestalten das solche Merkwürdige Prozesse dedected werden? (AntiCheat Software wird hier gemacht!)

    MfG,

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mikebazz“ ()

    Naja da gibt es keine einfache "Funktion" dafür.
    Es gibt verschiedene Ansätze die man kombinieren kann (hier nur ein paar. Es gibt noch wesentlich mehr):

    - eine kleine Datenbank aller "akzeptablen" Prozesse (aber immer in Kombination auch mit dem Pfad und ggf. dem Hashwert für die Datei)
    - nicht digital signierte Dateien hervorheben
    - ggf. Regeln für Namen über RegEx für spezielle Prozesse wie von dir beschrieben
    - Signaturen für bekannte Malware (oder Cheatprogramme) abgleichen (ähnlich einen AntiVirus Programm)
    - die Dateien untersuchen auf Funkionen die sie aufrufen

    Es ist aber in jedem Fall immer Fehleranfällig und nich mal so "easy" für einen Anfänger zu machen.
    Eine Anticheat Software ist in meinen Augen viel zu komplex für dich.
    Das ist meine Signatur und sie wird wunderbar sein!