
costy's Find the valid number.
Download costy_crackme_n3.zip, 27 kb (password: crackmes.de) Browse contents of costy_crackme_n3.zip You have to find a valid number.
Difficulty: 1 - Very easy, for newbies | RatingWaiting for at least 3 votes View profile of costy » |
Solutions
Solution by MACH4, published 21. may, 2008; download (1147 kb), password: crackmes.de or browse.
MACH4 has not rated this crackme yet.
Solution by br0ken, published 21. may, 2008; download (7 kb), password: crackmes.de or browse.
br0ken has not rated this crackme yet.
Solution by Grubci0, published 21. may, 2008; download (3 kb), password: crackmes.de or browse.
Grubci0 has rated this crackme as quite nice.
The submission of solutions is closed.
Discussion and comments
DigitalAcid 14. May 2008 | Nice and easy :). |
---|---|
costy Author 15. May 2008 | Good! DigitalAcid it seems you are solving all my crackmes. But I am still waiting for the solution to COSTY's Second Crackme - Crack this Bitmap Creator :-) |
DigitalAcid 15. May 2008 | Hehe, your crackmes aren't that hard yet :P. I won't write a tutorial for this one, because i'll probably need to include a keygen =) (i made it partially selfgen). The solution of your Bitmap Crackme is still in queue, but i don't know if it will be a valid solution. |
costy Author 16. May 2008 | A keygen isn't needed. There is no possibility to find a valid number without bruteforcing. <REALLY IMPOSSIBLE> If you want more information i'm am on msn costyn1@hotmail.it. I don't want to explain the crackme here... :-) |
DigitalAcid 16. May 2008 | Well, the bruteforcer would be the keygen :D. If only i could show the correct number in the crackme. Now it only shows the goodboy message after calculating the right number. I didn't patch, i made an inline bruteforcer ;). Maybe this week-end i'll write a tutorial then. |
costy Author 16. May 2008 | If you modified the exe file to do a self bruteforce... it is not patching but PROGRAMMING. So it is a good solution. To show the number inside the crackme you can call SetDlgItemInt. It is strange I help people to crack my program. :- )) |
DigitalAcid 16. May 2008 | I tried the SetDlgItem, but the value is in hex. Also, i need to find the right handle first because there are several GetDlgItems ;). |
Grubci0 16. May 2008 | Nice crackme. :) algo for serial is simple. I made solution and something like keygen day ago. Now waitin for moderator. |
xylitol 16. May 2008 | There is no possibility to find a valid number without bruteforcing Impossible Is Nothing |
Rezert 16. May 2008 | lmao. this is hard. i dunno why it's 1...or maybe im just an idiot? it's probably the latter. i just started OllyDbg the other day. lol. anyways, i can patch most things easily but can't do the whole find the number thing |
Grubci0 17. May 2008 | keep it going ;) algo is just a few lines. i can say there is many good numbers. still waiting :p |
obnoxious 17. May 2008 | Eh! Do we really need to bruteforce this baby. It was pretty simple a number of valid numbers between 10000000-99999999 can be found! |
DigitalAcid 17. May 2008 | @obnoxious: not every number is valid :). |
obnoxious 17. May 2008 | @ DigitalAcid I never meant all numbers are valid. I meant a specific few or better still a specific kind. ;) |
Grubci0 17. May 2008 | Bad luck, i haue send damaged archive with my solution (mod cant open it). i will haue access to my pc at monday and then will send again, to author too. |
costy Author 17. May 2008 | There are a lot of valid number. I don't understand DigitalAcid's problem. You have to use SetDlgItemInt passing the same handle used with GetDlgItemInt. What are you saying about SetDlgItem?? You should use SetDlgItemINT ****INT**** Bye.... |
costy Author 17. May 2008 | just a little help 10000019 is valid |
DigitalAcid 17. May 2008 | Yeah, that's the first number my bruteforcer found :P. |
costy Author 18. May 2008 | REVERT. Difficulty is 1 for me, but you could have a problem with this becouse it's a math joke. |
Grubci0 18. May 2008 | MODULO joke i can say... ;) ok im at comp, will send new solution ;) |
costy Author 18. May 2008 | I don't know what modulo means in English. I tried to find it in the dictionary. There isn't. |
DigitalAcid 19. May 2008 | I think he means "modulus" a.k.a. "mod". |
Grubci0 19. May 2008 | no i mean modulo dividing ;) |
DigitalAcid 19. May 2008 | Same thing =). Some random text here because short message don't work O.o. |
costy Author 19. May 2008 | Yes same thing. DigitalAcid invented a trick to write short messages adding "Some random text here because short message don't work O.o.". He cracked crackmes.de site. :-) |
Grubci0 19. May 2008 | :))) congratulations |
obnoxious 19. May 2008 | Eh! No solutions for this 1 as yet. |
DigitalAcid 19. May 2008 | Don't worry, i'm sure there are some solutions waiting ;). |
costy Author 19. May 2008 | There are a lot of people waiting. DigitalAcid did you send a solution?? |
MACH4 19. May 2008 | Just done one, will upload later MACH4 |
costy Author 20. May 2008 | Good Job MACH4 Some random text here because short message don t work O.o |
DigitalAcid 20. May 2008 | Yes, i uploaded a solution. Included a bruteforcer. |
MACH4 20. May 2008 | brute force for a single valid number or a small range of test numbers works ok. Trying to get all valid numbers in the range of 10000000 to 99999999 would take appx 8.9E14 loops or in real terms something like 137 years. Thats why I don't like brute force crackmes but this one is much easier because of the many valid numbers! |
MACH4 20. May 2008 | Also interesting is the amount of cpu usage, mine is 64 bit but in xp is firing only on one cylinder. so a full 50% usage... |
costy Author 20. May 2008 | I think that this will be the crackme with the greatest number of solution. Nice record :-)))) |
obnoxious 20. May 2008 | mach4 if u think the range from 1000000-99999999 is huge just think i made my bruteforcer to find all nos frm 1-99999999 |
costy Author 20. May 2008 | What are you doing Obnoxious??? Valid numbers must be greater then 10.000.000 |
obnoxious 20. May 2008 | yeh i know man it was just for fun. i can specify an input range that the bruteforcer can start with. so i can use a starting number between 1-9999999 as i like. |
costy Author 20. May 2008 | Yes... I suggest you to start from 10.000.001 :-D |
obnoxious 20. May 2008 | ah! guess u forgot i told u what logic ur crackme was applying in p.m. so really i dont have to brute force it to find valid serials i just made a brute forcer as every 1 else was doin it ;-) |
costy Author 20. May 2008 | I don t forgot. :-D I'm joking. I suggest doing a competition. Who will program the fastest bruteforcer?? |
DigitalAcid 20. May 2008 | I think we all will have the same speed of bruteforcer. After all, it's only increasing our input and looping through the algo over and over and over and over, and over. Ps: i want to see those crackmes in queue =P. I'm bored atm. |
costy Author 20. May 2008 | I don't think so there are some math algoritmics to find THAT type of number... |
obnoxious 21. May 2008 | oH! costy ther are a number of algos that can find that kind of numbers n they are pretty fast. they can generate upto 1billion within a minute. check this site out i will send u the link in p.m |
obnoxious 21. May 2008 | did any1 verify the serials generated by the brute forcer. in my case 1 or 2 invalid serials pop out continually. :( cant figure out why.maybe its the same for all!!!!!!! |
DigitalAcid 21. May 2008 | Yeah, i encountered 2 invalid serials when i bruteforced some with Olly. It's allways the same invalid one. I noticed it must be something with the stack. Unfortunately i didn't save them. |
costy Author 21. May 2008 | So... is the problem inside my crackme?? Or is it inside the bruteforcer. If the numebers are invalid you can post it on crackmes.de without problems. |
costy Author 21. May 2008 | Anyway I'm going to publish the source when the first solution will be accepted. |
MACH4 21. May 2008 | can you post a couple of invalid numbers you found! I will check them here... |
obnoxious 21. May 2008 | here r the invalid serials. sorry the r in hex i cd make my bruteforcer to show hex values instead of decimal. 9896cd 9896d7 9896d9 after these there were valid serials but i guess invalid numbers will pop up continually.:=0 |
MACH4 21. May 2008 | Thanks for the numbers, no they are all invalid here. Must be something wrong with your bruteforcer 9896cd = 10000077 = invalid 9896d7 = 10000087 = invalid 9896d9 = 10000079 = invalid There are 2 valid numbers in the lowest 100 & 6 valid numbers in the 100 to 200 range maybe you need to zero some registers after each loop... |
DigitalAcid 21. May 2008 | Weird, the first 2 are invalid for me, but the last one is valid for me. And yes, don't forget to zero the CCCCCC01 ;). |
MACH4 21. May 2008 | sorry, yes that third number is one of the two valid ones in that range! I wasn't concentrating! lol |
obnoxious 21. May 2008 | yes sorry found the problem with my prog. will fix it now n re upload my tut. thanks!!!!!!!! |
costy Author 21. May 2008 | I don't know why the compiler used CCCCCC01. It's only a flag so it can be rapresented by one byte. |
obnoxious 21. May 2008 | my brute forcer is working properly.No probs now only valid serials are generated.;) |
MACH4 21. May 2008 | I think the compiler does that, computer can only use DWORD's so say if you used "push ax" (in the 32bit world) the compiler would push a DWORD to keep the stack balanced, Stack and heap are just memory so no doubt applies to your reserved BYTE as well, so you end up with the full register content... |
DigitalAcid 21. May 2008 | Well, it was CCCCCC00, but you only moved 1 byte (a 1) in there, so it became CCCCCC01. If we don't reset it ourself, our bruteforcer will never find a valid number ;) (Except if the first one is valid of course). Lol, i bet there are like 7 solutions for this one :O. Mod will have a hard time choosing wich ones to accept (pun intended :P). |
MACH4 21. May 2008 | Don't forget that the following "AND" removes the C's before the test.. Anyway, I'm looking at So;x dos Crackme now, haven't done that stuff for years... |
obnoxious 21. May 2008 | no no it was not that i had forgotten to code some lines that set E&f. so instead of getting 9896cf i kept getting 9896cd |
costy Author 21. May 2008 | Firts solutions arrived. They are really fine. I hope to read many others solution. I'm happy becouse a lot of people liked this crackme. |
TiGa 21. May 2008 | If all the solutions were approved as soon as they came in, the first one would accuse the others of cheating if their solution was slightly similar to his. It also allows people to revise and improve their solutions. |
DigitalAcid 21. May 2008 | Hmm, mine got rejected, but the bruteforcer works fine. It only shows the valid serial after the goodboy, after clicking the OK button... |
obnoxious 21. May 2008 | alas! my soln got rejected to made some stupid mistakes. but m undaunted n have uploaded anew version with all fixes as asked by tiga ;). m hoping n waiting |
TiGa 21. May 2008 | Self-bruteforcers are not allowed. It is considered as patching. For any crackme, we don't put much value in solutions that include patching, especially if other solutions were submitted that don't include patching. This place is about learning new things, not repeating the same fishing or patching recipe to every level 1 crackme as soon as it comes in. We don't have to approve every solution that comes in. We pick only the better ones, it is about quality, not quantity or speed. |
costy Author 21. May 2008 | Please send invalid solution to costyn1@hotmail.it. I'm curious. |
costy Author 21. May 2008 | MATH 4 analized my crackme in PEiD and wrote in his video solution: "[DEBUG] means there will be a load of debug calls in there, which is probably left to cause confusion for us!". I don't want to cause confusion for anybody, I don't know what [DEBUG] means. |
MACH4 21. May 2008 | Hi costy, I only brought attention to it because I thought it was diliberately there to create some diversion from the important loop! I don't use visual C but suspect it is debug version (to help with debugging) until when its published, then the exe gets cleaned... |
costy Author 21. May 2008 | Yes I verified MACH4. It's true. Anyway the source is this one... // crackmetre2.cpp : Defines the entry point for the application. // #include "stdafx.h" #include "resource.h" // Global Variables: HINSTANCE hInst; // current instance LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, 0, (DLGPROC)About); ExitProcess(0); } // Mesage handler for about box. LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: SendMessage (GetDlgItem(hDlg, IDC_EDIT1),EM_LIMITTEXT, 8,0); return TRUE; break; case WM_COMMAND: if (LOWORD(wParam) == IDCHECK) { int number; int number2; int resto; bool divisibile = false; number = GetDlgItemInt(hDlg, IDC_EDIT1, 0, 0); if (number > 10000000) { ShowWindow(GetDlgItem(hDlg, IDC_EDIT1),0); ShowWindow(GetDlgItem(hDlg, IDCHECK),0); ShowWindow(GetDlgItem(hDlg, IDC_WAIT),1); UpdateWindow(hDlg); for (number2 = number-1; number2 > 1; number2--){ resto = number %number2; if (resto == 0) divisibile = true; } ShowWindow(GetDlgItem(hDlg, IDC_EDIT1),1); ShowWindow(GetDlgItem(hDlg, IDCHECK),1); ShowWindow(GetDlgItem(hDlg, IDC_WAIT),0); if (divisibile == false) MessageBox (hDlg, "You win. Now write a tutorial :-)", "Champion!!", 0); else MessageBox (hDlg, "Invalid number!", "Error",0); } else MessageBox(hDlg, "Number should be greater then 10000000 ;-)", "Little Hint", 0); } break; case WM_CLOSE: ExitProcess(0); } return FALSE; } |
costy Author 21. May 2008 | some words are in italian resto = remainder divisibile = divisible about is the main (only) window I forgot to rename it. |
souravipc53 14. Nov 2008 | The Fact is that it is a prime nos. finding crackme. if you have any type of prime nos. findin software you can easily find out hundreds of prim nos. valid between 10000000 &99999999. |
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.