社区
C#
帖子详情
谁来解释一下,为什么相同的代码,每次编译所得的exe,它们的MD5校验值,都不一样?
startququ
2012-04-25 09:18:43
代码没有经过任何改动,然后编译N次,得N个exe,但是这N个exe,他们的MD5值,都不一样,为什么?
...全文
773
27
打赏
收藏
谁来解释一下,为什么相同的代码,每次编译所得的exe,它们的MD5校验值,都不一样?
代码没有经过任何改动,然后编译N次,得N个exe,但是这N个exe,他们的MD5值,都不一样,为什么?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)
MD5
算法的编程实现
MD5
算法的编程实现【实验目的】【实验环境】【实验预备知识点】【实验内容】【实验步骤】【实验思考题】 【实验目的】 1、理解Hash函数的计算原理和特点。 2、理解
MD5
算法原理。 3、了解
MD5
值
的生成过程。 【实验环境】 windows虚拟机 在目录C:\Program Files\Microsoft Visual Studio\MyProjects\
MD5
下打开
MD5
.dsw,在VC6.0环境下
编译
代码
。 【实验预备知识点】
MD5
是一种常见的单项散列算法,用以提供消息的完整性保护,计算机界广泛使用的
MD5
简介与
代码
实现
MD5
简介
md5
的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就...
恶意
代码
技术及恶意
代码
检测技术原理与实现,从零基础到精通,收藏这篇就够了!
由于特征签名的的唯一性可对一样本实现100%的查杀率,但由于特征签名具有的唯一性,仅能实现一对一(即一个签名
值
仅能匹配一个恶意文件),这种方法虽然不可能出现误报的情况,但所需的病毒库体量会过于庞大,且只要恶意
代码
作者重新
编译
文件或改变任何一个字节,都会使得该签名
值
无法匹配,但是由于签名计算实现十分简单快速,因此基于特征签名的检测技术适合对突发的一种恶意
代码
进行应急响应,前提是恶意
代码
不会动态更新其本体。以上的种种检测技术丰富了与恶意
代码
的对抗手段,同时也提供了对层出不穷的新病毒的检测能力以及应急响应能力。
MD5
简介及其算法源码
MD5
简介 (源码下载) (摘自百度http://baike.baidu.com/view/7636.htm)
MD5
的全称是Message-digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L. Rivest开发出来,经MD2、MD3和MD4发
DES RSA
MD5
三种加密算法的详尽解说
MD5
算法研究 综述
md5
的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章