Wie bekomme ich den hash der aktuellen .exe-Datei?

[GELÖST]: ich kopierte die Datei und ran an die hasher auf dieser Kopie.

Muss ich meine app zu finden, die EXE-Datei der aktuellen MD5. Ich kann mit der MD5 von jeder Datei.
Jedoch, egal was ich mache, ich Schaffe es nicht, ein FileStream Lesen Sie die EXE-Datei öffnen. Ich habe versucht, mit FileOptions.Asynchrone aber das hat nicht geholfen.

EDIT: ich denke, ich bin nicht sehr klar. Ich möchte, dass meine app in der Lage sein, sich selbst zu Lesen.

BEARBEITEN von code:

private void GetMd5()
{
    MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();

    FileInfo fi = new FileInfo(Process.GetCurrentProcess().MainModule.FileName);
    FileStream stream = File.Create(Process.GetCurrentProcess().MainModule.FileName, (int)fi.Length, FileOptions.Asynchronous);

    md5.ComputeHash(stream);

    stream.Close();

    string rtrn = "";
    for (int i = 0; i < md5.Hash.Length; i++)
    {
        rtrn += (md5.Hash[i].ToString("x2"));
    }
    MessageBox.Show(rtrn.ToUpper());
}
  • Eröffnung Ihres eigenen Ausführung von EXE-scheint wie etwas, das nicht funktionieren kann, aber ich habe noch nie als, bevor, so kann ich nicht sicher sagen. Haben Sie überlegt, ob Sie sich eine temporäre Kopie der EXE und ausführen der hash auf, das anstelle?
  • Danke!!! Dieser arbeitete. Ich verwendete Datei.Kopieren nach %temp% ein, und es lief auf das.
  • Es sollte wirklich nicht notwendig sein, um die Datei zu kopieren. Es sollte nur eine Frage der öffnung mit der richtigen access-Modus. (Wenn es kopiert werden kann, kann es Lesen.)
  • Sie sollten akzeptieren, eine Antwort oder schreiben Sie Ihre eigenen Antwort, und es akzeptieren, markieren Sie die Frage als beantwortet.
InformationsquelleAutor Andrew Mock | 2012-01-16
Schreibe einen Kommentar