downloadbrowseSalar's Chaloia

Download, 17 kb (password:
Browse contents of

My First KeygenMe. So it's proably very easy.
Written in C++.
1. Do NOT make a patch.
2. Make a Keygen (not a selfkeygen).
3. Make a video tutorial and post the solution.
4. Have fun.

The zip contains a keygen. Password is pass for user Meow.
Passwords are a bit weird... But you can make it.

Difficulty: 1 - Very easy, for newbies
Platform: Windows
Language: C/C++

Published: 12. Jul, 2016
Downloads: 786


No votes yet.
Rate this crackme:

Send a message to Salar »

View profile of Salar »


Solution by xXTurdhunterXx, published 20. oct, 2016; download (3 kb), password: or browse.

xXTurdhunterXx has not rated this crackme yet.

Solution by AnonymousKid, published 25. aug, 2016; download (9 kb), password: or browse.

AnonymousKid has not rated this crackme yet.

Submit your solution »

Discussion and comments

13. Jul, 20:34
I have tried to run this executable several times and I keep getting the error of

The program can't start because MSVCP100D.dll is missing from your computer. Try reinstalling the program to fix this problem.

I have VS installed fine and all my debug projects run just fine. Not entirely sure if it's the executable you submitted.
14. Jul, 01:33
I've faced the same problem
14. Jul, 03:13
I have some problem.0x21+0x65>0x7F.
How to keygen it????
14. Jul, 03:15
the name is everyting,but the pass is null(0x00)??
15. Jul, 17:32
probably bugged crackme ? generated passwords are out of asci range, beside this you use movsx to char expansion so you compare 'char values' like 0xFFFFFFC6, or is this all intentional?
18. Jul, 17:10
redoC, I noticed it too. But I am completely new in cracking so I thought it's some kind of protection and wasted more than 5 hours analyzing it. So is it bugged or not?
24. Jul, 18:34
for missing dll visit:
26. Jul, 21:30
Download dll from

and put in in same folder as Chaloia.exe ;)
07. Aug, 15:25
@redoC This also stumped me for a while, but I found out that movesx extends the MSB of a byte. So if we have 0111, it won't extend it to say 1111 0111. But something like 1000 would be extended to 1111 1000.

As far as the crackme, I did come up with a solution but I am having quite a hard time copying the extended ascii characters to clipboard or trying to enter them.

Here is psudo code for my solution:
add_char = 'e'
password = ""

for c in characters
password += ((c - 30) + div_by_char) + 0x30

add_char = c

The algorithm looks like it uses modulus...but from one of the names I tested it only was accepted without it...
password += (((c - 30) + div_by_char) % 0x7A) + 0x30. My solution probably doesn't work with all strings. I just gave up since entering extended ascii is hard :(

I ended up using a website to copy and paste extended ascii characters:

For example !!!! coresponds to åBBB.
07. Aug, 15:27
Sorry there are errors in my comment:
div_by_char should be add_char and c - 30 should be c - 0x30
14. Aug, 02:55
@Seprum, most likely it's bugged. I came out with solution similar to @xXTurdhunterXx's, but it works from time to time. If, like @xXTurdhunterXx wrote down, my function for !!! returns åBB for password and crackme accepts it, same function for aaa input returns LHH as password, but now it's somehow not accepted by the crackme.
14. Aug, 02:58
It's interesting though where is the bug. Couldn't identify bug in comparison function with IDA decompiler though.
24. Aug, 11:11
void Checksumm(char * name, char * checksumm, int lenght)
char e = 'e', b = 0, x = 0, z = 0, a = 0;
if (name[0] == 0) return false;
for (int i = 0; i < lenght; i++)
b = name[i];
b -= 48;
checksumm[i] = b;
x = checksumm[i];
x += e;
checksumm[i] = x;

e = name[i];
z = checksumm[i];
z = z % 122;
checksumm[i] = z;

a = checksumm[i];
a += 48;
checksumm[i] = a;
checksumm[lenght] = '\0';
12. Sep, 11:42
Sorry for being inactive for a while.
Non-ascii pass is perfectly correct.
Keep it on!
12. Sep, 11:45
Is there a way to remove solutions? Rules state that you should not patch!
12. Sep, 11:51
i also like how you got that complicated stuff. Cant dig up my code. But it was like 5 loc.
13. Sep, 04:04
I submitted my fully working solution 3 weeks ago but it hasn't been approved by mods...why?
22. Sep, 17:23
Salar, what code table you used?
24. Sep, 14:19
what do you mean by code table?
02. Oct, 13:47
What code page is used in your CMD?
09. Nov, 05:16
@SalarI have the keygen, but the console alters the string. Any suggestions?

User: String;
Serial, Seed, Tmp, I: ShortInt;
Seed := $65;
User := TxtName.Text;
for I := 1 to Length(User) do
Serial := 0;
Serial := Serial + ShortInt(User[I]) - $30;
Serial := Serial + Seed;
Serial := Serial mod $7A;
Serial := Serial + $30;
Seed := Integer(User[I]);

TxtSerial.Text := TxtSerial.Text + Chr(Byte(Serial));

19. Nov, 12:53
I'm using 850 (Latin1 I guess).

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.