社区
C#
帖子详情
谁来解释一下,为什么相同的代码,每次编译所得的exe,它们的MD5校验值,都不一样?
startququ
2012-04-25 09:18:43
代码没有经过任何改动,然后编译N次,得N个exe,但是这N个exe,他们的MD5值,都不一样,为什么?
...全文
854
27
打赏
收藏
谁来解释一下,为什么相同的代码,每次编译所得的exe,它们的MD5校验值,都不一样?
代码没有经过任何改动,然后编译N次,得N个exe,但是这N个exe,他们的MD5值,都不一样,为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
startququ
2012-04-25
打赏
举报
回复
我知道MD5是什么。我以前写过计算MD5值的代码。
[Quote=引用 9 楼 的回复:]
你知道md5加密之前的源字符串是什么么? 应该是一些可变的源数据
[/Quote]
orochiheart
2012-04-25
打赏
举报
回复
你知道md5加密之前的源字符串是什么么? 应该是一些可变的源数据
showjancn
2012-04-25
打赏
举报
回复
应该没有编译信息,可能跟编译器有关,因为编译时,比如变量、函数名、类名等,编译器都将动态生成,可能会不一样。
没有查证。
startququ
2012-04-25
打赏
举报
回复
我用g++编译器,编译c++代码:
如果代码不经任何改动,每次编译出来的exe,MD5都是一样的。
[Quote=引用 5 楼 的回复:]
當然不一樣,這是唯一
[/Quote]
startququ
2012-04-25
打赏
举报
回复
“唯一”= “不一样” ?
我的源代码,都没有经过任何改动。
编译的时候,被添加了哪些不一样的东西?
[Quote=引用 5 楼 的回复:]
當然不一樣,這是唯一
[/Quote]
crackdung
2012-04-25
打赏
举报
回复
當然不一樣,這是唯一
startququ
2012-04-25
打赏
举报
回复
没有人知道吗?
startququ
2012-04-25
打赏
举报
回复
能否去掉这些编译信息?
[Quote=引用 2 楼 的回复:]
里面含用编译时间日期..等一些信息数据
[/Quote]
lilei_new
2012-04-25
打赏
举报
回复
里面含用编译时间日期..等一些信息数据
lilei_new
2012-04-25
打赏
举报
回复
估计里面含有编译信息,比如编译时间日期..
mrsupersky
2012-04-25
打赏
举报
回复
[Quote=引用 26 楼 的回复:]
我问的,正是:编译结果中,哪些是变动的信息。
引用 24 楼 的回复:
.NET是中間語言》需要JIT的,慢慢去理解,,,
引用 23 楼 的回复:
你懂什麽叫做尋址嗎?自己去理解
[/Quote]
这个问题你的搞搞 怎么个反编译了
我是说你要是能够做出.net Reflector类似的软件 的话,那你就知道是怎么回事了。。。
startququ
2012-04-25
打赏
举报
回复
我问的,正是:编译结果中,哪些是变动的信息。
[Quote=引用 24 楼 的回复:]
.NET是中間語言》需要JIT的,慢慢去理解,,,
[/Quote]
[Quote=引用 23 楼 的回复:]
你懂什麽叫做尋址嗎?自己去理解
[/Quote]
startququ
2012-04-25
打赏
举报
回复
我题目不是已经说了吗:代码不经过任何的改动,编译N次,就有N个MD5值。
注意:前提是“不经过任何改动”的N次编译。
[Quote=引用 21 楼 的回复:]
不和你說,總之修改就一定會變,這個道理都不懂,,哎,注意:我說的是修改,包括你在源代碼哪怕增加一行空白行,,,,都會變
[/Quote]
crackdung
2012-04-25
打赏
举报
回复
.NET是中間語言》需要JIT的,慢慢去理解,,,
crackdung
2012-04-25
打赏
举报
回复
你懂什麽叫做尋址嗎?自己去理解
startququ
2012-04-25
打赏
举报
回复
我说的是不修改的情况下,一个符号都不增加、不减少、不修改。
[Quote=引用 21 楼 的回复:]
不和你說,總之修改就一定會變,這個道理都不懂,,哎,注意:我說的是修改,包括你在源代碼哪怕增加一行空白行,,,,都會變
[/Quote]
crackdung
2012-04-25
打赏
举报
回复
不和你說,總之修改就一定會變,這個道理都不懂,,哎,注意:我說的是修改,包括你在源代碼哪怕增加一行空白行,,,,都會變
startququ
2012-04-25
打赏
举报
回复
release的,也是每次都不一样。
[Quote=引用 17 楼 的回复:]
release试试看
对于文件,有个关键的问题:exe文件里好像是有时间信息的。比如创建时间,最后修改时间等。原始信息里应该是有创建时间信息的。
还有可能,debug的不一样,release的一样。
[/Quote]
startququ
2012-04-25
打赏
举报
回复
G++编译器,就是编译多少次,MD5、SHA1这些校验信息都一样。
不知道.Net的编译器,在exe里放了什么东西??
[Quote=引用 18 楼 的回复:]
MD5 ,SHA1肯定前後編譯的不一樣,如果你能做到,,,很多事情都可以了
[/Quote]
crackdung
2012-04-25
打赏
举报
回复
MD5 ,SHA1肯定前後編譯的不一樣,如果你能做到,,,很多事情都可以了
加载更多回复(6)
从D盾
MD5
值
到文件完整性
校验
:原理、应用与安全实践
本文深入解析
MD5
哈希算法作为文件“数字指纹”的核心原理,包括确定性、雪崩效应与不可逆性,并指出其碰撞漏洞导致不适用于高安全场景。重点阐述
MD5
在D盾防火墙下载验证、服务器入侵排查及CTF文件上传绕过中的实战应用,涵盖官方
MD5
获取、本地计算(Windows CertUtil/Linux
md5
sum)、比对方法及常见问题排查。同时推荐SHA-256等更安全替代方案及数字签名验证等进阶实践。
不安装任何软件或脚本使用powershell快速计算文件的
MD5
/SHA1/SHA256等
校验
值
本文介绍了如何利用PowerShell中的certutil工具快速计算文件的SHA256
值
,以在VB.NET教程中检查升级过程中的XML文件签名。通过在文件夹内启动PowerShell并输入相应命令,可以便捷地获取文件的SHA256
校验
和,无需额外的工具。
MD5
碰撞攻击实战:使用fastcoll工具生成与验证碰撞文件
本文详细讲解使用fastcoll工具生成
MD5
碰撞文件的完整流程,包括环境搭建、命令行参数详解、碰撞块构造原理,并提供基于Python标准库的验证脚本,支持二进制文件哈希计算、字节级差异定位及SHA-1对照分析。内容聚焦
MD5
抗碰撞性失效机制、典型攻击场景(如证书伪造、软件供应链攻击)及安全替代方案(SHA-256、SHA-3),强调在密码学应用中彻底弃用
MD5
的必要性。
LLYF
MD5
Checker W.I.P
作者改进了一款
MD5
计算工具,新增搜索文件夹及其子文件夹内所有文件并计算其
MD5
值
的功能,并实现了文件夹拖拽操作。此外,还调整了工具栏样式,使其更加友好。
告别手动
校验
!用Keil MDK和srec_cat一键为固件.bin文件添加
MD5
签名(附完整脚本)
本文介绍如何在Keil MDK构建流程中集成srec_cat工具,实现嵌入式固件.bin文件的自动化
MD5
签名。内容涵盖srec_cat安装配置、Keil后构建命令设置、批处理脚本开发(含
校验
一致性验证)、
MD5
哈希原理及嵌入式端
校验
代码
实现,并提供跨平台验证方法与常见问题排查技巧,全面提升固件完整性保障能力。
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章