downloadbrowsemalfunction's Digital Arithmetic

Download malfunc_crk5.zip, 8 kb (password: crackmes.de)
Browse contents of malfunc_crk5.zip

Description inside

Difficulty: 5 - Professional problem to solve
Platform: Windows
Language: Assembler

Published: 29. Nov, 2008
Downloads: 545

Rating

Votes: 5
Crackme is good.

Rate this crackme:

Send a message to malfunction »

View profile of malfunction »

Solutions

Solution by andrewl.us, published 18. feb, 2009; download (69 kb), password: crackmes.de or browse.

andrewl.us has rated this crackme as awesome.

Submit your solution »

Discussion and comments

cyclops
Moderator
29. Nov 2008
Good crackme!
I just love the whole lot of SEH ;)
kao
01. Dec 2008
Hehe, Malfunction is back! :) I missed your crackmes! And now I got a good reason to brush up my keygenning skills..
_HellDashX_
02. Dec 2008
A very nice crackme. I have it dumped, and a very nice SEH , :)
xpoy
07. Dec 2008
well,i just love ur "call".tell me something,good crackme
and finshed all game.but just lazy too translate test to english
look here
http://bbs.pediy.com/showthread.php?p=546760
mjesun
07. Dec 2008
oh god, I don't know... japanese :D
simonzack
Moderator
12. Jan 2009
finally killed all seh and close to solving
nice refreshment after so long time not cracking anything
simonzack
Moderator
12. Jan 2009
lol i sound a bit stupid
i mean nice crackme!
simonzack
Moderator
21. Feb 2009
as the key can read/write to itself, this makes the crackme a bit too easy (i'm not sure if this is on-purpose)
the keyfile can simply store the ecx value in one bit, save the results of the name hashes, then compare with ecx to see which value to output,
so simply:
switch(ecx){
case 0: ...
case 1: ...
...
}

though this can be very big, i read andrewl's solution, which contains xor
this can be a specific case of the whole keyfile
is this intentional?
simonzack
Moderator
21. Feb 2009
umm, now i'm not sure if above works (since there can be no jumps in file), but the following definitely should:

use constants in round to load everything, 'and'ed with first 8 bytes (so future rounds constants are not loaded),
then shift all values left by 8 bytes
wipe out first 8 bytes with 0

therefore we have: for each round the hashed value is shifted in
tony
05. Jun 2009
aha! I found an other method, thanks you ,'andrewl.us',your mind is very good ,but it can be simplified .you let me learn more,and have a inspiration.

You may leave your comment, thoughts and discuss this crackme with other reversers here.
Acting childish will not be tolerated.
HTML and such will be left as-is, so don't try.