同じソースコードから複数回ビルドをするとビルドするたびに生成されたファイルにバイナリ差分があります。これを回避したいです。
つまり、同じソースコードからであれば何度ビルドしてもバイナリ比較したら一致するようにしたいのです。
このようなことは可能でしょうか?
他に、この差分が検出される部分を除外してバイナリ比較する方法はありますか?
どのような条件でビルドされているのかにもよりますが、可能性として高いのはタイムスタンプや_DATE_マクロです。
http://ruffnex.oc.to/kenji/text/exe_inj/
これらは時々刻々と変わる値なので、どうしようもありません。
> 他に、この差分が検出される部分を除外してバイナリ比較する方法はありますか?
ありません。
ちなみに、タイプスタンプ等が書かれるのは PE ヘッダと呼ばれる部分になります。
詳細は、下記を参照ください。
■ EXEファイルの内部構造(PEヘッダ) (1/3):CodeZine
http://codezine.jp/article/detail/412
また、プログラムに変更ないかを調べる方法として、
正攻法ではないかもしれないですが、「逆コンパイラ」を用いて、ソースを出力し、比較するという方法もありますので、参考まで。
■ 無償の逆コンパイラ「ILSpy」を利用するには?[C#] - @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/1055ilspy/ilspy.html