downloadbrowseHMX0101's Newbie Challenge #1

Download NC1.zip, 206 kb (password: crackmes.de)
Browse contents of NC1.zip

Newbie Challenge #1 by HMX0101

Again me :)
This time, i'll be making a small series of crackmes
for newcomers to this interesting world :)

This one is easy.. or at least that was my intention..
Sorry if its too hard :P

This series will give you some reversing skills! :)

Prerequisites:
- The cracker needs to know basics of ASM (this is a must!)
- Math knowledge (if you know +,-,* and /, then you've this one! :)
- A bit of Luck.. (well, this isn't hardly required.. but it will help you too :D)
- Be good with girls/boys... optional.. hehe :P

The rules!
- Find the password.. without using bruteforce!
- Don't patch
- DON'T BRUTEFORCE! (its just to make clear :D)

Enjoy!

Difficulty: 1 - Very easy, for newbies
Platform: Windows
Language: Borland Delphi

Published: 15. Aug, 2008
Downloads: 1510

Rating

Votes: 6
Crackme is good.

Rate this crackme:

Send a message to HMX0101 »

View profile of HMX0101 »

Solutions

Solution by SK2K7, published 22. aug, 2008; download (3 kb), password: crackmes.de or browse.

SK2K7 has rated this crackme as awesome.

Submit your solution »

Discussion and comments

hackereha
16. Aug 2008
lol it's hard a bit:P i cant find the last char of serial yet but i will:P
Drakenza
16. Aug 2008
It's quite hard :D

I reversed the first check very easily, put it in equation form, solved for the 1st char of the S/N, and got it. However, when I input that character, it changes...? As far as I can tell it's related to the call to 453AC8, which I'm looking at and can't for the life of me understand.

From pure observation it looks like 15 is added to the 1st char of the S/N, but only in some cases (for some reason a string like "7xx" doesn't get changed). I don't think it's a bug, more likely I'm missing something.
SK2K7
16. Aug 2008
Hehe, nice one HMX0101
hackereha
16. Aug 2008
@Drakenza
yea i realized that too it just adds it to letters i think:)
Ramirez
16. Aug 2008
Hmm, i can pass all checks but checksum ...
MACH4
16. Aug 2008
It's not hard! Just been too many rediculously easy ones lately!
Drakenza
16. Aug 2008
@hackereha: yeah, it seems to add 15, but only in some cases :S (I figured out the 1st char and subtracted 15 from it, but when I put that in the serial it doesn't change).

I've been stepping through that massive series of calls over and over but I have no idea what it's doing :D
br0ken
16. Aug 2008
Any hints regarding the checksum?
I can't seem to get past it :(
w00b
17. Aug 2008
i'm guessing the checksum would have to do with the casing of the letters.. i could be wrong though
Zaphod
18. Aug 2008
It was easy to find the correct serial using some analysis and a little bit of trial and error. But that is not a solution, of course, since any trial and error can be considered bruteforcing. Which is strictly forbidden :)

A complete analysis is going to take some time...
w00b
18. Aug 2008
The rules make it tough :) I coded an app to figure out the possibilities but I think that would be brute forcing so I can't submit a solution :)
HMX0101
Author
18. Aug 2008
Damn.. maybe for the next one, i should lower the level a bit :P
One question for the people who tried it and still don't get it:

Do you think patching or bruteforcing is always the good/only choice? The algo in the crackme is perfectly reverseable, just need to try harder and use the grey-matter in your brain :D

I just made this one, because i was sick of see some level1 crackme which don't learn you some reversing skills which you need for harder ones :)

Regards!
Drakenza
18. Aug 2008
@HMX0101: No, I think we've just had it too easy for too long ;). I prefer algorithms that are reversible rather than the ones you have to patch or bruteforce (you learn a lot more anyway).
SK2K7
18. Aug 2008
Yes, it is full reversible, it can be solved with pen paper and calculator.
hackereha
21. Aug 2008
so where's your solutions O.o?
SK2K7
21. Aug 2008
Sorry, i never send solutions, but here is a little hint for you:

((39AB xor 12) AND FF) xor FF = 46 => 'F'

now depending on case if result is capital or not
it chooses an array which is the same as the letters
of alphabet letters of your keyboard.
Now count from 'Q' till 'F' -start at 0- so it is 13 till 'F'

Now take normal alphabet table 'A..Z' start at 1 count 13 and you get first letter of the serial => 'M'

Regards
br0ken
21. Aug 2008
Umm, you're making it complicated.
((num XOR 0xFF) XOR 0x12) = 0xAB
num = ((0xAB XOR 0x12) XOR 0xFF) = 4D = M
SK2K7
21. Aug 2008
mm, yeah sounds my is a complicated (i was never good at math)
But, as long as at the end comes the same result out, who cares ;)
Drakenza
22. Aug 2008
Why do you have to start from A..Z and count 13 rather than start from 'F' and count 13?
I guess I read the disassembly incorrectly...
br0ken
22. Aug 2008
num = ((0xAB XOR 0x12) XOR 0xFF) = 46 = F
The calculation produces 0x46 = F instead of M (sorry about that!)
Cme seems adds/subtracts a certain depending on the letter entered. (trace CALL NC1.00453AC8)
A + 22 = W
B + 03 = E
C + 15 = R
D + 8 = L
..
M - 7 = F

I bruted a little to find out which char produces F. (sorry!)
From the above table it's M.
HMX0101
Author
22. Aug 2008
@hint: substitution cipher...:)
SK2K7
22. Aug 2008
HMX0101, pm'd you my Pen and Paper solution ;)
HMX0101
Author
22. Aug 2008
Nice sol, SK2k7 ;)
You've submitted it?.. maybe can help some people around there =D
br0ken
22. Aug 2008
woot!
Solved it.
The pwd has a lot Mass. Hehe ;)
Won't submit a soln because i used a little amount of bruting, which of course makes my soln invalid.
I'm looking forward to see a soln with 0% bruting.
SK2K7
22. Aug 2008
Yeah, submitted i'll hope it will be accepted ;)
apuromafo
23. Aug 2008
nice work :) @SK2K7
and nice challenge @hmx0101

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.