0

.exe ファイルのハッシュ コードを受け取るプログラムを作成しました。そして、ストリームライターよりも.exeファイルに書きました。その .exe を開きたい場合、次のエラーが表示されます: is not a valid win32 application.

ハッシュで何ができますか、それから機能する.exeファイルを作成することは可能ですか?

どうもありがとうございました!

byte[] hash;
using (Stream stream = File.OpenRead(@"C:\Program files\CCleaner\CCleaner.exe"))
{
    hash = SHA1.Create().ComputeHash(stream);
}
string base64Hash = Convert.ToBase64String(hash);
Console.WriteLine(base64Hash);

StreamWriter myWriter = new StreamWriter(@"C:\Users\Win7\Desktop\Hash.exe");
myWriter.Write(base64Hash);
4

3 に答える 3

1

実行可能ファイルのハッシュ コードは文字列であり、有効な実行可能ファイルではありません。ハッシュ コードを保存する場合は、次のようにテキスト ファイルに書き込みます。

byte[] hash;
using (Stream stream = File.OpenRead(@"C:\Program files\CCleaner\CCleaner.exe"))
{
    hash = SHA1.Create().ComputeHash(stream);
}
string base64Hash = Convert.ToBase64String(hash);
Console.WriteLine(base64Hash);

StreamWriter myWriter = new StreamWriter(@"C:\Users\Win7\Desktop\Hash.txt");
myWriter.Write(base64Hash);
于 2013-08-05T03:10:03.440 に答える
0

このエラーの理由:

エラーが表示されます: 有効な win32 アプリケーションではありません

アプリケーションの先頭を上書きしていることです。ほとんどのexeファイルには何でも追加できますが、データの上書きは機能しません.

次のようにハッシュを追加すると:

StreamWriter myWriter = new StreamWriter(@"C:\Users\Win7\Desktop\Hash.exe", true);

アプリケーションは正常に実行されます。このアプリケーション内で、exe ファイルの最後のバイトにアクセスしてハッシュを取得できます。

于 2013-08-03T14:18:12.750 に答える