Exetools

Exetools (https://forum.exetools.com/index.php)
-   Community Tools (https://forum.exetools.com/forumdisplay.php?f=47)
-   -   MD5 Fast Collision (https://forum.exetools.com/showthread.php?t=18933)

CodeCracker 09-02-2018 16:28

MD5 Fast Collision
 
2 Attachment(s)
MD5 Fast Collision:
generate two blocks with same MD5 hash.

The program require Microsoft Visual C++ 2008 Redistributable
Requirements:
https://www7.zippyshare.com/v/hx08GIN8/file.html

Source code:
https://www2.zippyshare.com/v/NIpCbdj7/file.html

chants 09-03-2018 04:44

Can you clarify if this is a pre-image (where the hash is given), second pre-image (where one block is given), or just a plain collision (two random blocks) as I suspect its the 3rd which is still not as useful as the prior 2.

atom0s 09-03-2018 07:46

From a quick glance at the source it looks like it is based on user input to generate the collisions but uses a static IV to do it:
Code:

// IV = 0123456789abcdeffedcba9876543210
const uint32 MD5IV[] = { 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476 };


CodeCracker 09-03-2018 15:43

It doesn't use static IV - MD5IV can be set by user,
but unfortunately it is just generate two random blocks with MD5 collision!

atom0s 09-04-2018 02:50

MD5IV in that line is const, meaning it can't be changed during runtime.
It would have to be edited at compile time to be altered.

If the exe alone was distributed, then it wouldn't be changeable unless someone hex edited/memory edited the exe.

CodeCracker 09-04-2018 14:54

void CMD5_Fast_ColDlg::OnBnClickedOk()
{
...
uint32 IV[4] = { MD5IV[0], MD5IV[1], MD5IV[2], MD5IV[3] };
...
if (initialValues[0]!=0)
{
...
IV[0] = Endian_Conv(IV[0]);
IV[1] = Endian_Conv(IV[1]);
IV[2] = Endian_Conv(IV[2]);
IV[3] = Endian_Conv(IV[3]);

}

So MD5 initial values can be set by user!


All times are GMT +8. The time now is 00:51.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX