伪造MD5值 MD5碰撞生成工具
伪造MD5值 碰撞算法
fastcoll_v1.0.0.5 MD5碰撞生成工具 官方https://www.win.tue.nl/hashclash/ 这几位密码学家使用的是“构造前缀碰撞法”(chosen-prefix collisions)来进行此次攻击(是王小云所使用的攻击方法的改进版本)
是根据王小云教授的算法写的MD5碰撞的程序 年代久远(2004年8月17,我国山东大学王晓云教授破解MD5的论文发布) 今日为了汉化一个程序研究
软件可以根据a软件可以生成b和c软件,b和c 两个软件MD5相同,但是文件底部十六进制并不同。
虽然有点鸡肋,但确实有可行的利用方式,根据底部数值,来分别执行不同的功能。
两个新文件的MD5值虽然相同,但它们的SHA1值不同,且与原始文件的SHA1也不相同,因此不是同一个文件。
所以,使用MD5作为单一校验工具并不是完全可靠的
fastcoll_v1.0.0.5.exe -p MsgBox.exe -o m1.exe m2.exe
此外直接将这个文件拖到fastcoll_v1.0.0.5.exe上,等于使用fastcoll打开它,fastcoll会自动生成两个文件
检查MD5值的一致性:这里我们使用系统命令certutil
certutil -hashfile file_path MD5
计算一下m1.exe、m2.exe的SHA1值 是不同的
certutil -hashfile file_path SHA1
参考文章:
https://www.chenxublog.com/2020/12/09/different-gif-same-md5.html
https://blog.csdn.net/weixin_33701617/article/details/92216955
语法:
by Marc Stevens (http://www.win.tue.nl/hashclash/)
Allowed options:
-h [ --help ] 显示选项.
-q [ --quiet ] 不那么详细.
-i [ --ihv ] arg 使用指定的初始值。默认值为MD5的初始值.
-p [ --prefixfile ] 使用给定的前固定文件计算初始值。此外,还可以将数据复制到输出文件中。
-o [ --out ] arg 设置输出文件名。这必须是最后一个选项,并且必须恰好指定2个文件名。
默认值: -o msg1.bin msg2.bin
测试过程记录
新建 a b两个txt试试
MD5 的 a.txt 哈希:
5ff2aedbccf86eda8bb9338f86b1c308
MD5 的 b.txt 哈希:
827ccb0eea8a706c4c34a16891f84e7b
我要让a的变成b的
fastcoll_v1.0.0.5.exe -i 827ccb0eea8a706c4c34a16891f84e7b -p a.txt -o a_1.txt a_2.txt
他没有按照我的来
Using output filenames: 'a_1.txt' and 'a_2.txt'
Using prefixfile: 'a.txt'
Using initial value: 5ec5b3dcd6b3740c0d401c134af8e4ac
查一下两个
certutil -hashfile a_1.txt MD5
MD5 的 a_1.txt 哈希:
b4fcd0f41c3f036dbacbf3ecbc2a8048
MD5 的 a_2.txt 哈希:
b4fcd0f41c3f036dbacbf3ecbc2a8048
fastcoll_v1.0.0.5.exe -i827ccb0eea8a706c4c34a16891f84e7b -p a.txt -o a_1.txt a_2.txt