识别/删除相同build.NET exe';s
我再次尝试比较两个.exe,这次做了一些更改识别/删除相同build.NET exe';s,.net,visual-studio-2010,binary-reproducibility,.net,Visual Studio 2010,Binary Reproducibility,我再次尝试比较两个.exe,这次做了一些更改 在Microsoft Visual Studio 2010中构建项目 项目目标框架=.NET framework 3.5客户端配置文件 我构建项目,在.exe上运行dumpbin/rawdata,并输出到文本文件。 接下来,我重新构建项目,在新的.exe上运行dumpbin/rawdata,并输出到新的文本文件。然后我对每一个进行CRC,以确保它们是相同的(在构建之间不进行任何更改) 我得到了不同的CRC值。当我通过windiff运行原始数据时,
- 在Microsoft Visual Studio 2010中构建项目
- 项目目标框架=.NET framework 3.5客户端配置文件
dumpbin/rawdata
,并输出到文本文件。
接下来,我重新构建项目,在新的.exe上运行dumpbin/rawdata
,并输出到新的文本文件。然后我对每一个进行CRC,以确保它们是相同的(在构建之间不进行任何更改)
我得到了不同的CRC值。当我通过windiff
运行原始数据时,我看到rawdata#1
部分存在差异,我认为这是从项目源代码生成的实际数据(如果我错了,请更正)
在原始数据#1
中有三个不同的区域,其中一个包括.pdb
问题:
项目属性页->配置属性->链接器->调试->生成调试信息)
{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX}。字典
。。。在另一个区别中,我不能从ascii中做任何事情(我去掉了.pdb信息)
我想知道是否有办法查看/提取编译后的代码以供查看
我尝试了ngen显示“App Name”
并在WINDOWS/assembly
中搜索,但找不到任何相关内容(此外,我也不知道100%要找什么…)
谢谢你抽出时间,
ZayJay有两种工具用于扩散装配, 在他的博客中列出了其中的一些
还有一些有两个工具用于扩散装配, 在他的博客中列出了其中的一些
还有一些我认为程序集中有时间戳,这可能是造成差异的原因。谢谢,你知道是否有多个时间戳吗?因为我得到了3个不同的区域,我希望它们是相同的.exe(其中一个看起来像是ascii中的.pdb)。或者通过项目设置关闭时间戳的方法?是的,有多个时间戳的模糊记忆,但由于它们模糊,它们可能是错误的。我也可能完全错误地认为一开始就有时间戳。您是否验证了每次更改都在同一个位置且大小相同?还要注意,我知道以前有人问过这个问题,一般的共识是,如果不需要重新生成代码,则不必处理更改的程序集,这显然是交易的一部分。请允许我问一下,为什么需要重建为完全相同,而不是在代码未更改的情况下不重建?我正在为一家公司验证软件,测试确认Visual Studio 2010将反复生成.exe,并且可以预测。因此,我想从源构建一个.exe,保存原始数据,然后再创建另一个.exe并验证它们是“相同的”。我已经使用它。exe是用C++构建的,但是在这里有麻烦。此外,差异是相同的,根据我启用的项目设置(摆弄它们以尝试修复差异)在程序集中有时间戳,这可能会导致差异。谢谢,你知道是否有多个时间戳吗?因为我得到了3个不同的区域,我希望它们是相同的.exe(其中一个看起来像是ascii中的.pdb)。或者通过项目设置关闭时间戳的方法?是的,有多个时间戳的模糊记忆,但由于它们模糊,它们可能是错误的。我也可能完全错误地认为一开始就有时间戳。您是否验证了每次更改都在同一个位置且大小相同?还要注意,我知道以前有人问过这个问题,一般的共识是,如果不需要重新生成代码,则不必处理更改的程序集,这显然是交易的一部分。请允许我问一下,为什么需要重建为完全相同,而不是在代码未更改的情况下不重建?我正在为一家公司验证软件,测试确认Visual Studio 2010将反复生成.exe,并且可以预测。因此,我想从源构建一个.exe,保存原始数据,然后再创建另一个.exe并验证它们是“相同的”。我已经使用它。exe是用C++构建的,但是在这里有麻烦。另外,不同之处是相同的,根据我启用的项目设置(摆弄它们以尝试修复不同之处)给出或获取几行代码。谢谢--我坚持使用Windows工具以避免进一步的软件验证,并尝试使用
ildasm
和ilasm
工具。检查ildasm
输出的差异可以消除除
的GUID之外的所有差异。这是一个可重复的值还是在构建时随机生成的值?我目前正在研究更多,但我已经到了一个地步,我可能不得不放弃这一点,继续前进…不确定,但我发现。看看你似乎无法控制它:/谢谢——我坚持使用Windows工具来避免进一步的错误