downloadbrowseSalar's Chaloia

Download Chaloia.zip, 17 kb (password: crackmes.de)
Browse contents of Chaloia.zip

My First KeygenMe. So it's proably very easy.
Written in C++.
Rulez:
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

Rating

No votes yet.
Rate this crackme:

Send a message to Salar »

View profile of Salar »

Solutions

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

xXTurdhunterXx has not rated this crackme yet.

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

AnonymousKid has not rated this crackme yet.

Submit your solution »

Discussion and comments

chocolate
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.
metacube
14. Jul, 01:33
I've faced the same problem
TomwithM
14. Jul, 03:13
I have some problem.0x21+0x65>0x7F.
How to keygen it????
TomwithM
14. Jul, 03:15
the name is everyting,but the pass is null(0x00)??
redoC
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?
Seprum
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?
UltraM4N
24. Jul, 18:34
for missing dll visit:
https://www.dll-files.com/msvcr100d.dll.html
BadNiiw
26. Jul, 21:30
Download dll from http://www.telecharger-dll.fr/download/Chaloia.zip.php?dll=msvcr100d.dll

and put in in same folder as Chaloia.exe ;)
xXTurdhunterXx
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:
http://www.theasciicode.com.ar/extended-ascii-code/letter-a-ring-ascii-code-134.html

For example !!!! coresponds to åBBB.
xXTurdhunterXx
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
shikata.ga.nai
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.
shikata.ga.nai
14. Aug, 02:58
It's interesting though where is the bug. Couldn't identify bug in comparison function with IDA decompiler though.
beaver
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';
}
Salar
Author
12. Sep, 11:42
Sorry for being inactive for a while.
Non-ascii pass is perfectly correct.
Keep it on!
Salar
Author
12. Sep, 11:45
Is there a way to remove solutions? Rules state that you should not patch!
Salar
Author
12. Sep, 11:51
i also like how you got that complicated stuff. Cant dig up my code. But it was like 5 loc.
xXTurdhunterXx
13. Sep, 04:04
I submitted my fully working solution 3 weeks ago but it hasn't been approved by mods...why?
Barkhat
22. Sep, 17:23
Salar, what code table you used?
Salar
Author
24. Sep, 14:19
@Barkhat
what do you mean by code table?
Barkhat
02. Oct, 13:47
@Salar
What code page is used in your CMD?
Bakasura
09. Nov, 05:16
@SalarI have the keygen, but the console alters the string. Any suggestions?

var
User: String;
Serial, Seed, Tmp, I: ShortInt;
begin
Seed := $65;
User := TxtName.Text;
TxtSerial.Clear;
for I := 1 to Length(User) do
begin
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));
end;

end;
Salar
Author
19. Nov, 12:53
@Barkhat
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.