downloadbrowsepromix17's Primitive Math

Download Primitive_Math.zip, 169 kb (password: crackmes.de)
Browse contents of Primitive_Math.zip

Primitive Math v1.0
Written by Promix17

Level of dufficulty: 5

This is quite difficult CrackME: you should be not only good cracker - you should
know some math yet... But don't worry about last at the beginning - find, reverse
and understand protection code first :-) I hope you will like this CrackME. Don't
give up!!! It's a really solvable and keygenable CrackME.

And of cause the purpose is to make a keygen. Good luck!

Send me your solutions, questions, comments and offers.

E-mail: promix17@yandex.ru

Difficulty: 5 - Professional problem to solve
Platform: Windows
Language: C/C++

Published: 23. Mar, 2011
Downloads: 634

Rating

Waiting for at least 3 votes
(we have only 1).

Rate this crackme:

Send a message to promix17 »

View profile of promix17 »

Solutions

Solution by tamaroth, published 08. apr, 2011; download (5 kb), password: crackmes.de or browse.

tamaroth has not rated this crackme yet.

Solution by Dcoder, published 07. apr, 2011; download (260 kb), password: crackmes.de or browse.

Dcoder has not rated this crackme yet.

Submit your solution »

Discussion and comments

tamaroth
Moderator
31. Mar 2011
I think there's a small error in your code in the middle of checking routine. After you've checked first two characters of serial, you then proceed do next function. This function is decrypted with a byte (let's call it a key) equal to some form of crc of code. The value should be 0x5D, and when first time it's decoded, everything works fine. But unfortunetaly at the end of the procedure you crypt it again, this time with the key equal 0x2B, and thus on next time, when checking the code, crackme decrypts the code wrongly and you end up with a crashed crackme.
example:
tamaroth
EO34567890103

run it and click check twice, after second click it will crash :(

One more thing, you should take care of this additional process you create, after you exit from the crackme it persists in system, you are also able to run multiple copies of that process (good idea would be to check mutex or smth like that)

Despite this, I've patched my version with proper values and I'm going further, so far it was fun :)
promix17
Author
01. Apr 2011
Yes, there is small bug. It may be so, becouse I started coding programm with C++ and finished with OllyDbg, so didn't notice this part of code...I only can say, that this bug can't appear in practice when you are legal user.

I think a lot about additional process but again have a mistake. It should end in a minute but it doesn't... And about mutexs: if you use a mutex, when you kill process mutex doesn't dissappeared -> so next time additional process won't run.

But the most interesting will be later. Really the idea of crackme let me even show you source code, but whith additional protection it will be more harder)))
tamaroth
Moderator
01. Apr 2011
If you assume that you enter the correct serial once, then yes, I agree. But it's rather dangerous bug for a legal software :)

And about mutexes: when process ends, you should kill mutex you control, so you can run the program again :)
promix17
Author
08. Apr 2011
Thanks for all solutions. Next time I will try harder and qualitative.

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.