Exetools

Exetools (https://forum.exetools.com/index.php)
-   General Discussion (https://forum.exetools.com/forumdisplay.php?f=2)
-   -   decryption problem with MD5 (https://forum.exetools.com/showthread.php?t=16569)

zeytunak 02-19-2015 20:02

decryption problem with MD5
 
Hi

I have a string like "D9" with ascii code "44" for "D" and "39" for "9"
x=ascii(D)+ascii(9) ==> x=7D

I assume only uppercase char
in reverse 7D=44+39 ==>D9 ***
7D=45+38 ==>E8
7D=46+37 ==>F7


but in md5 we have 32 character that after adding them we have 16 key value like 7D in above example and every key value have 3 possibility ( i hope ) means we have 3*3*...*3=3^16= 43046721 posible string .

q1 : MD5 string have a special form to reduce above possible string ?

do you have an idea ho to reverse it ?

10x

Syoma 02-19-2015 20:14

md5 is not reversible. It is compression function (hash). The only way to solve it - find collision.

bolo2002 02-20-2015 00:11

try to bruteforce it,many tools available since years.

zeytunak 02-20-2015 02:46

thanks

I am not try to reverse MD5 , before i get a string that hashed with md5 algo .
in this step i have sum of assci code of two char . how to find orginal chars ?

cnbragon 03-10-2015 13:05

According to your description, it seems that there are no special form to reduce , except for there are other information about the original md5 string or the 16 key value, such as their validation?

zeytunak 03-10-2015 16:11

orginal md5 string or 16 key value not used instead maked hash string used .

anon_c 03-10-2015 23:12

q1 : MD5 string have a special form to reduce above possible string ?

unfortunately, no...


you wrote:
7D=44+39 ==>D9
7D=45+38 ==>E8
7D=46+37 ==>F7

but can't
7D=39+44 ==>9D
7D=38+45 ==>8E
7D=37+46 ==>7F

also be valid solutions?

my understanding from your first two posts was that you wanted a solution for each byte taken from a md5 hash, given that each byte is the sum of 2 "ascii code" for values in the range of possible Hex number ['1'..'9', 'A'..'F'] (thus 0x30-0x39 and 0x41-0x46) ?

this would already limits the values of the bytes (from the md5) to 0x60-0x92.. Do you really have a md5 hashing that always give bytes in this limited range? Please, give an example of a md5 used in your example then.

Now you wrote "orginal md5 string or 16 key value not used". From where does the 7D comes from then? Confusing...

zeytunak 03-11-2015 14:11

Its magic , I want to reduce possible string but increased rapidly 6^16=2821109907456 .

It is used as login and in first time that set by user then hashed value saved and then used to check valid user login.

this encryption is made from "md5 algo" + "simple adding algo" and adding is not part of md5 and programmer used adding after using md5 .
( instead of using non-standard md5 , maybe programmer dont know about non-standard md5)
I think this is good idea becuase if programmer only use standard md5 for fixed string length ( 16 char in our example ) then its easily breaked. all possible 16 char string maked and hashed with md5 and search between them .
many site provide standard md5 decryptor in above manner .

anon_c 03-12-2015 05:12

"this encryption is made from "md5 algo" + "simple adding algo" and adding is not part of md5 and programmer used adding after using md5 ."

That is exactly how I understand the problem.

Now, for the "simple adding algo" to work (at least the way you presented it in your first post), the MD5 should give you bytes (the 32 chars of the md5 divided into 16 bytes) containing only values between 0x60 and 0x92 ! That is the problem.

For instance, if you hash "exetools", you get:

DC67724E1CCF839C05957C27F9862499
DC 67 72 4E 1C CF 83 9C 05 95 7C 27 F9 86 24 99
What will the "simple adding algo" do with the values DC or 24?

zeytunak 03-12-2015 12:42

ascii code for D = 44h
ascii code for C = 43h +
------
87 saved

ascii code for 2 = 32h
ascii code for 4 = 34h +
--------
66 saved

in md5 string we have 0 , 1 , 2 , 3 , ..., D , E , F ( if only using uppercase )
in hex 0x30 , 0x31 , 0x32 , 0x33 , .... , 0x44 , 0x45 , 0x46

Minimum = Ascii(0) + Ascii(0) = 0x30 + 0x30 = 0x60
Maximum = Ascii(F) + Ascii(F) = 0x46 + 0x46 = 0x8C

0x60 < final saved hash < 0x8c

arthur plank 03-12-2015 16:06

I thought I understood MD5. But after reading this thread, I'm no longer sure.

mr.exodia 03-12-2015 19:44

I'm not really sure why there is still discussion about 'decrypting md5'. md5 is not an encryption algorithm you cannot 'decrypt' it!

arthur plank 03-12-2015 19:56

Quote:

I'm not really sure why there is still discussion about 'decrypting md5'. md5 is not an encryption algorithm you cannot 'decrypt' it!
It's a relief to find that someone stated what I've understood for a long time. I was starting to wonder about my sanity!

zeytunak 03-12-2015 20:16

its possible to crack hashed string with md5 and find orginal string .
for example in hxxp://md5cracker.org or bruteforce method or ...

anon_c 03-12-2015 22:59

Ah! My confusion came from your first post where you wrote:

"��but in md5 we have 32 character that after adding them we have 16 key value like 7D in above example"

7D does not come from the md5, D9 does!

Then, since many solution exist for each byte in the "final saved hash", I don't think you can reverse it, exactly as cnbragon pointed out

Syoma 03-13-2015 01:20

@zeytunak: it is not possible to crack md5 because unlimited number of inputs give the same result. You can find only the collisions which give the same md5, but you cant be sure it is original input.

arthur plank 03-13-2015 05:00

Quote:

its possible to crack hashed string with md5 and find orginal string.
Not really. The MD5 string is a representation of a 128 bit value. To say that you can find the original string from the MD5 value is like saying that there are only be 2^128 different combinations of data content possible (of length and actual data).

The best you can really do is come up with something that creates the same MD5 value as being searched for. There will be absolutely no guarantee that the data is the same as the original - Unless you have other clues.

anon_c 03-13-2015 05:19

The title of the thread may be confusing, but zeytunak already mentioned that the main problem is NOT actually about the md5 hashing.

As I understand it, the problem is that after MD5 hashing, a "simple adding algo" is used to encrypt the MD5 hash. Since reversing this encryption procedure will results in an exponential number of pseudovalid results, zeytunak was only asking if MD5 string may have a special "pattern" in it (I guess) which would help to reduce the many possible solutions given by reversing the "simple adding algo"�� Nothing about cracking or reversing the MD5 hashing itself��.

conan981 03-22-2015 07:07

only realistic way would be use a GPU to do calculations. math tecniques cannot help a lot.


All times are GMT +8. The time now is 06:19.

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