downloadbrowsecosty's Image(?) and Serial

Download crack.zip, 6 kb (password: crackmes.de)
Browse contents of crack.zip

KeyGen Me - Image and Serial

by COSTY

The user must load an image.
The serial is generated from the image content.

The purpose is to create a keygen.

Difficulty: 3 - Getting harder
Platform: Windows
Language: (Visual) Basic

Published: 03. Mar, 2010
Downloads: 349

Rating

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

Rate this crackme:

Send a message to costy »

View profile of costy »

Solutions

Solution by MACH4, published 03. mar, 2014; download (381 kb), password: crackmes.de or browse.

MACH4 has not rated this crackme yet.

Submit your solution »

Discussion and comments

T.0.R.N.A.D.0.
04. Mar 2010
Your crack-me accepts a "BLANK SERIAL" for some cases (when the whole image is composed of a single color) !

Fishing a serial was too easy .. trying to make a keygen now :)
costy
Author
04. Mar 2010
Yes! fishing a serial is really really easy but the task is to keygen it.
Some image have a "BLANK SERIAL": it's normal!
It's not bugged!!!
obnoxious
05. Mar 2010
Hola costy buddy u are online?
T.0.R.N.A.D.0.
05. Mar 2010
I think that's a bug ..

When you compare the entered serial (which is a string) with a floating point, vb will stop at the first non-numeric char in the serial. The blank serials are accepted because of this : when vb gets a blank string "" the equivalent numeric expression is "0.0".
So, even if you enter "costy" or "T0RNAD0" "000xyz", they would be accepted !! In general, any serial starting with a non-numeric char (or "0" followed by non-numeric chars ) will be accepted ! (isn't that a bug) ??
Where as keys like "123" or "1T0RNAD0" etc will be rejected.

Try this .. make an image out of a single color and enter the above serials.
costy
Author
07. Mar 2010
@obnoxious:
I'm back. ;)
in Italy we say: chi non muore si rivede!
About no see!

@T.0.R.N.A.D.O
That's not a bug!
Some image have 0 as serial.
When you type a serial VB try to convert it as a number.
The conversion is made with val
val(text1)

If you enter "tornado" as serial
the crackme executes serialtyped = val(tornado)
tornado is not a number so VB put seraltyped = 0.
Some image for example images with only one pixel have 0 as right serial.
So "tornato" could be a valid serial.
"House", "car", "computer" can be ok too.
These words are converted to 0.

"1T0RNADO" is converted to 1.
"123star" is converted to 123.
"&h11&" is converted to 17. VB thinks you typed an hexdecimal.
An empty string is converted to 0.
Infact you wrote 'your crack-me accepts a "BLANK SERIAL" for some cases'.

There is no bug.
T.0.R.N.A.D.0.
08. Mar 2010
Yeah, i know what happens with val(), so i thought it's a bug (I thought you forgot 2 put a check after val()) .. Sorry ! :)
costy
Author
08. Mar 2010
@T.0.R.N.A.D.0.
I'm courious... have you got any idea about how the crackme works?
Xspider
08. Mar 2010
hi nice to see you are back costy :D
T.0.R.N.A.D.0.
09. Mar 2010
Yeah .. it reads the bitmap pixels and works with them.
It then reads 2 bits from each RBG byte (except the last byte) and does something like : Serial += bit1 - bit2.
I can manually crack the serial by reading the bits of a bitmap file ... but i find some problem in coding it .. the bit sequence doesn't appear as expected. :(
costy
Author
09. Mar 2010
.. the bit sequence doesn't appear as expected. :(??
What do you mean?
T.0.R.N.A.D.0.
10. Mar 2010
I mean abt my keygen .. I get some problem reading the bits ... they don't appear the same as in the program dump.
Trevil
20. Mar 2010
Yeah, cracking it wasnt that bad, but my asm is, keep getting a message about my bmp files not containing any resource section.. (?)

Nice work on the crackme tho, was different :))
Trevil
20. Mar 2010
@T.0.R.N.A.D.0.

You keep getting 24bit sequneces?
costy
Author
20. Mar 2010
The difficulty of this crackmes isn't to understand the code, the difficult part is to write a keygen.
T.0.R.N.A.D.0.
21. Mar 2010
@Trevil :

Are you talking abt the image ?
I read the image and get 4bits per pixel of the image : RGB + 1 reserved.
Then I tried to do : Serial = SumOf(Bbits) - SumOf(Gbits).
I am going wrong there ...

@ Trevil : If you have solved it, plz post a solution.

I am going to trace through the crackme again ..
Nice crackme :)
costy
Author
21. Mar 2010
@T.0.R.N.A.D.0.

What.

Obviously you meant bytes (not bits). But my crackme uses only 3 bytes per pixel.

Contact me privately if you don't understand.
T.0.R.N.A.D.0.
22. Mar 2010
Yeah sorry abt that, it's bytes (not bits).
I know your Crackme uses 3 bpp, but the image may not always use 3 bpp.
I was trying with a 24-bit bmp that I made with MSPaint. When I try to read the image, I can see 4 bpp (in Hex Viewers), but your crackme uses 3 bpp !
costy
Author
22. Mar 2010
@T.0.R.N.A.D.0.

Yes T.0.R.N.A.D.0 "the image may not always use 3 bpp"
but my crackmes uses 3 bytes.
This is a difficulty of my crackme.
It's strange that an image with 24 bit = 3 bytes has 4bpp.
Anyway the bytes in a bitmap file are stored in a strange way.
My crackme as you can see don't read the bytes directly from the file.
It loads the bitmap and then with an API function
;)
gets the bytes .
In the bmp file the byte haven't a clear order.
What language are you using to write the keygen?
T.0.R.N.A.D.0.
22. Mar 2010
Actually 24bit is 3bpp but probably the extra padding bytes were stored when I read the file. (I am using VB and I use GetBitmapBits).
costy
Author
22. Mar 2010
@T.0.R.N.A.D.0.
So you use
GetBitmapBits Picture1.Picture, number_of_bit_to_read, the_array(0).

The crackmes use the same. It must work!!!!! Send me the source of keygen, I'm curious.

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.