2011-12-07 6 views
2

私はPortable Executable形式の2つのファイルを比較して、同じコードからコンパイルされているかどうかを確認するプログラムを作成しています。コードが変更されていない場合でも、常に異なるフィールドがあります。私の解決策は、基本的にファイルを自分のプログラムにロードし、すべてのタイムスタンプとチェックサムをゼロに設定して比較することです。これはexeファイルでうまく動作しますが、.NET DLLの#〜ストリームにはリビジョンフィールドがあり、これはアクセスするのがはるかに難しいです。私は非常に退屈なように見えるすべてのヘッダーを解析しなければならないだろうし、私はそれを避けることができれば幸せだろう。.NET PEファイルの特定のフィールドに最も簡単にアクセスする方法を教えてください。

今、ストリーム全体を無視することを考えています。これを実行しても、ファイルが同等であることを確認できますか? 1つのフィールドのアドレスだけが必要なときは、すべてのヘッダーを読むのに時間が無駄だと感じます。私はこれを行うことができない場合は、他の時間のかかるソリューションを提案することができますか?

私はC#でプログラミングしています。

答えて

関連する問題