我在VS2005中创建了一个简单的"Hello World"应用程序.这是一个直接的控制台应用程序; 它只包含以下几行:
Console.WriteLine("Hello World");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
当我尝试重建相同的控制台应用程序而不执行任何更改(只需按下重建按钮)时,我得到一个微妙的不同的可执行文件.(我从第一个和第二个生成的可执行文件生成了一个SHA-1哈希,它是不同的!)
当没有代码更改时,为什么它会有所不同?实际改变了什么?我使用十六进制编辑器进行比较,只看到几个不同的字节.
我想我的最终问题是,我怎么知道"集会"是否确实改变了?(当然不看文件版本,文件大小等)
编辑
到目前为止,我们已经确定差异在于PE头(时间戳和一些调试数据).在我重新发明轮子之前,是否有一个忽略PE头的"装配比较"工具?
谢谢,伊恩