Laden...

Prozesse mit MD5 Hash auflisten?

Erstellt von Marwyc vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.978 Views
M
Marwyc Themenstarter:in
15 Beiträge seit 2010
vor 13 Jahren
Prozesse mit MD5 Hash auflisten?

Hallo, ich suche schon lange nach einer Möglichkeit aktuelle Prozesse in MD5 Hash aufzulisten sowie neue Prozesse in MD5 anzeigen zu lassen.

Beispiel:

New Process started "explorer.exe" size:62933kb Hash:"XXXXXXXXXXXXXXX"
Process end "explorer.exe" size:62933kb Hash:"XXXXXXXXXXXXXXX"

Sowie:

explorer.exe size:62933kb Has:"XXXXXXXXXXXXXX"
Steam.exe Size:29100kb hash:"XXXXXXXXXXXX"
xxx.exe usw.

Ein Freund von mir sagte mir es sei garnicht Möglich nur über eine .DLL

Hat jemand eine Lösung für mein Problem?

mfg

🙂

799 Beiträge seit 2007
vor 13 Jahren

Zum einen ist es möglich eine Liste aller laufenden Prozesse zu bekommen mit GetProcess aus der Process-Klasse.

Meines Wissens ist es nicht möglich einen Event ala ProcessStarted bzw. ProcessCreated zu abonnieren aber per Polling könntest du alle paar Sekunden checken ob die letzte Prozessliste noch aktuell ist.

Den MD5-Hash kannst du einfach aus der PID errechnen soweit kein Problem aber was genau meinst du mit:

Ein Freund von mir sagte mir es sei garnicht Möglich nur über eine .DLL ?

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
1.002 Beiträge seit 2007
vor 13 Jahren

Hallo Marwyc,

sieh dir mal die Klasse MD5CryptoServiceProvider zum Berechnen des MD5-Hashes an. Die Berechnung des Hashes hat mit der Verwendung von DLLS absolut nichts zu tun. Wie du an die laufenden Prozesse gelangst, hat ja der-schlingel schon beschrieben.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

1.361 Beiträge seit 2007
vor 13 Jahren

Den MD5-Hash kannst du einfach aus der PID errechnen soweit kein Problem aber was genau meinst du mit:

Wahrscheinlich geht es mehr um den Hash des Executables.

Könnte dann wie folgt aussehen:

MD5 md5Provider = new MD5CryptoServiceProvider();
foreach(Process process in Process.GetProcesses())
{
    Console.Write("\"{0}\" ", process.ProcessName);
    try
    {
        string fileName = process.MainModule.FileName;
        using(FileStream fs = File.OpenRead(fileName))
        {
            byte[] md5Bytes = md5Provider.ComputeHash(fs);
            string md5String = String.Join("", md5Bytes.Select(x => x.ToString("x2")));
            Console.WriteLine("size: {0}kb Hash: {1}", fs.Length / 1024, md5String);
        }
    }
    catch(System.ComponentModel.Win32Exception)
    {
        Console.WriteLine("<NoAccess>");
    }
}

beste Grüße
zommi

M
Marwyc Themenstarter:in
15 Beiträge seit 2010
vor 13 Jahren

Hallo, danke für die Tipps und Beispiele.
Das man eine Prozessliste auslesen kann weiß ich.problematisch wurde es halt bei der MD5, ein Freund von mir sagte ich soll es in C++ machen und dann in C# einbinden. So oder so ähnlich. Leider behersche ich kein C++. Und ja es geht um die Hash von den Executables. Ich teste es nachher mal =) danke schön.

🙂