Prozesse durchgehen mit Timer und überprüfen mit Hash-Liste.

  • VB.NET

Es gibt 29 Antworten in diesem Thema. Der letzte Beitrag () ist von Vultrax.

    LaMiy schrieb:

    @Vultrax
    "Funktioniert leider immer noch nicht" reicht nicht. Da muss du Code zeigen.

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. For Each p As Process In Process.GetProcesses
    5. Try 'Try wegen Zugriffsverweigerung
    6. MessageBox.Show(p.MainModule.FileName)
    7. Catch ex As Exception
    8. End Try
    9. Next
    10. End Sub
    11. End Class


    Ich habe das jetzt umgeschrieben und alles in einer Textbox wiedergeben:

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. hashlist.Add("23521433") 'TeamSpeak
    5. ListProcesses()
    6. For Each p As Process In Process.GetProcesses
    7. Try 'Try wegen Zugriffsverweigerung
    8. Me.TextBox1.Text &= (CStr(p.MainModule.FileName & " " & p.GetHashCode.ToString)) & vbNewLine
    9. Catch ex As Exception
    10. End Try
    11. Next
    12. End Sub
    13. Dim hashlist As New List(Of String)
    14. Public Sub ListProcesses()
    15. For Each p As Process In Process.GetProcesses
    16. If hashlist.Contains(p.ProcessName.GetHashCode.ToString()) Then
    17. p.Kill()
    18. MessageBox.Show(p.ProcessName & " wurde geschlossen")
    19. Exit For 'Normal nicht nötig, war wegen chrome aber sinnvoll
    20. End If
    21. Next
    22. End Sub
    23. End Class




    Richtig so?
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Warum nutzt du immer noch GetHashCode? Wurde dir das nicht schon irgendwo schonmal erklärt? Das ist kein Hash vom Prozess. Es ist ein Hash des Frameworks, dass dazu genutzt wird, Objekte zu vergleichen. Das kannst du für deine Zwecke nicht gebrauchen. Du bräuchtest einen Hash der Datei.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

    Lukas schrieb:

    Warum nutzt du immer noch GetHashCode? Wurde dir das nicht schon irgendwo schonmal erklärt? Das ist kein Hash vom Prozess. Es ist ein Hash des Frameworks, dass dazu genutzt wird, Objekte zu vergleichen. Das kannst du für deine Zwecke nicht gebrauchen. Du bräuchtest einen Hash der Datei.


    Also nur so:

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. For Each p As Process In Process.GetProcesses
    5. Try 'Oder halt mit MessageBox.show
    6. 'MessageBox.Show(p.MainModule.FileName)
    7. Me.TextBox1.Text &= (p.MainModule.FileName) & vbNewLine
    8. Catch ex As Exception
    9. End Try
    10. Next
    11. End Sub
    12. End Class


    Das selbe Bild wie oben, nur halt ohne Hash vom Framework.
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Soweit so gut. Jetzt besorg dir mal ne Funktion um eine Datei zu hashen (solltest du durch googeln sehr schnell finden).
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.

    Lukas schrieb:

    Soweit so gut. Jetzt besorg dir mal ne Funktion um eine Datei zu hashen (solltest du durch googeln sehr schnell finden).


    Wieso eine Datei hashen? (Hash erzeugen?) Ich möchte doch Hashs in einer Liste mit den Hashs der Prozess zugehörigen Datei vergleichen?
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Du widerspricht dir. Überlege noch mal ganz genau, was du da derzeit aufgelistet bekommst.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Und von dieser Datei brauchst du ja wohl den Hash, wenn du da was abgleichen willst?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Ich habe das noch verändert, allerdings habe das Problem, das er nur ein MD5-Hash wiedergibt:

    VB.NET-Quellcode

    1. Imports System.Security.Cryptography
    2. Imports System.IO
    3. Imports System.Text
    4. Public Class Form1
    5. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    6. For Each p As Process In Process.GetProcesses
    7. Try
    8. Me.TextBox1.Text &= (p.MainModule.FileName) & vbNewLine
    9. Catch ex As Exception
    10. End Try
    11. Next
    12. Dim myFile As String = "test.txt"
    13. Dim myHash As String = GetMD5(myFile)
    14. Me.TextBox3.Text = myHash
    15. End Sub
    16. Function GetMD5(ByVal filePath As String)
    17. Dim MD5 As MD5CryptoServiceProvider = New MD5CryptoServiceProvider
    18. Dim FileStream As FileStream = New FileStream(Process.GetCurrentProcess.MainModule.FileName, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)
    19. FileStream = New FileStream(Process.GetCurrentProcess.MainModule.FileName, FileMode.Open, FileAccess.Read, FileShare.Read, 8192)
    20. MD5.ComputeHash(FileStream)
    21. FileStream.Close()
    22. Dim Hash As Byte() = MD5.Hash
    23. Dim Buff As StringBuilder = New StringBuilder
    24. Dim HashByte As Byte
    25. For Each hashByte In Hash
    26. Buff.Append(String.Format("{0:X2}", hashByte))
    27. Next
    28. Dim MD5String As String
    29. MD5String = Buff.ToString()
    30. Return MD5String
    31. End Function
    32. End Class


    Das sieht jetzt so aus:

    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

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