伪造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

http://rolemee.com/2022/05/10/shi-yong-fastcoll-sheng-cheng-zi-fu-chuan-md5-peng-zhuang-ji-exception-lei-rao-guo-md5-sha1/

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