2016-06-17 5 views
0

C#のハッシュに関する質問があります。ハッシュファイルを検出する方法は、プロセスや何かそれらの行に沿って実行されているものです。ファイルをハッシュしてCを使って検出する#

私はexeやその他のファイル形式をハッシュしていますが、C#で動作していることを検出する方法があるかどうかを知りたいのです。

+0

実際に何をしようとしているのかを明確にしてください(「ありがとうございました」、「新しいここ」、「多く検索されました」などの無関係なテキストの追加は避けてください)。 –

+0

ハッシュというのは、(一般的に)はるかに小さい固定サイズのハッシュにすべてのファイルを減らすか、ファイルを暗号化することですか?暗号化は元の状態に戻すことができます。なぜなら、暗号化は元の状態に戻すことができるからです。ハッシュは復元できません。ハッシングは一方向の処理であるためです。 – rossum

+0

ファイルをハッシュして一意のデジタル署名を与え、そのファイルが実行されているか使用されているかを検出する単純なアルゴリズム/ロジックを開発したいと思います。マルウェアのシグネチャを検出し、検出されたときに特定の命令を実行するアンチウィルスのようなものと考えてください。 – Xynous

答えて

0

ハッシュ用System.Security.Cryptography.MD5またはSystem.Security.Cryptography.SHA1です。あなたはすべての実行中のプロセスを分析する場合は、次の操作を行うことができます

SHA1 sha1 = SHA1.Create(); 
FileStream fs = new FileStream("myFile", FileMode.Open, FileAccess.Read); 
byte[] hash = sha1.ComputeHash(fs); 
fs.Close(); 

(あなたのプロセスが32ビットであれば、あなたは64ビットのプロセスにアクセスすることはできないことに注意してください):

foreach (Process proc in Process.GetProcesses()) 
{ 
    try 
    { 
     string exePath = proc.MainModule.FileName; 
     // calculate hash 
    } 
    catch 
    { } 
} 

使用しているすべてのファイルのリストを取得したい場合は、this topicを見ることができますが、それは考えられます。

+0

私はセクションを理解できません。私はバイナリexeファイルを格納して、ハッシュし、格納されたハッシュファイルを検出するロジックを書き込む方法を探していました。 – Xynous

+0

ああ、今は何をしているのか分かりません。情報をありがとう :) – Xynous

関連する問題