Description
hey everyone, hope your having a good day, till now. this is my new crackme, this time it is little bit more different, you gotta achieve the conditions to win the game. but it is not that easy :). use some math to place the password.
and ill upload the sc later !
4epuxa on 8:29 AM 02/20/2021: my password is
20@@pPp0ppppPp0pp0pp
It can be different
profdracula on 1:01 PM 02/20/2021: Is the getting close message the winning message? :puzzled:
mohammadali on 5:24 AM 02/22/2021: @profdracula No, it is not, you must achieve a specific numbers of chars as well as specific number (in the ascii value),the sum of the chars you entered will be translated to ascii and added to each other ... this is a big hint :)
the problem is I uploaded this crackme a month ago, but it wasn't downloaded till now on the website, so I forgot the ascii value your password must achieve but I think it is 1,7-- something ... idk
MaxP on 12:38 PM 03/01/2021: Is this even solvable? It keeps telling me that the password needs to be 17 chars long, although it actually is. I also do not see any check in the CME whether the entered string is actually 17 chars long, it prints that unconditionally. A 17 chars long password that satisfies the necessary ASCII sum of 0x6E2 = 1762d is "alnzzzzzzzzzzz###". This should be valid, but I keep getting the "so close" message.
By the way: It's "disassembler", not "dissambler".
mohammadali on 9:08 AM 03/02/2021: @MaxP hey man, i actually wrote it and never checked whether it is working, but ill try to solve it when im done with the university's shit, i submitted a crackme (2nd version of this challenge), but i checked it, and im building something else rn that well be a true hit, (anti-patchable && anti-debugged), with some crazy ass techs, if you love challenge keep your eyes on the next upload.
mohammadali on 9:45 AM 03/02/2021: OKAY PEOPLE THIS CHALLENGE IS BROKEN (DO NOT TRY TO REVERSE IT).
i even tried to patch it, it appears that the success message is missing, idk wtf i was doing back then, but i wish i can delete it. anyways do not download it. ITS BROKEN
pranav on 3:46 AM 03/13/2021: You can request in the discord server to remove the crackme. Or maybe even update it?
Hachico on 2:57 PM 07/16/2021: int v5= 0; // esi
int v6 = 0; // edi
char v7 ; // al
const char* v19 = "znnnndddddddddddd"; // [esp+Bh] [ebp-5h] BYREF
v7 = *v19;
do
{
++v5;
v6 += v7;
v7 = *(v19 + v5);
} while (v7);
std::cout
BlockLoader1 on 2:03 PM 05/03/2025: Analysis:
Examining the main function: The program first asks the user for a number (N), which determines the number of password entry attempts. It then enters a loop that executes N times.
Password Check Logic: Inside the loop, the program:
Prompts for password input.
Reads the entered string.
Calculates the sum of the ASCII codes of all characters in the entered string. In the assembly code, this is implemented by the loop at address 0x00401140, where the edi register accumulates the sum.
Determining the Target Value: The sum of ASCII codes (edi) is compared with the constant 0x6E2 (1762 in decimal), as seen in the cmp edi, 6E2h instruction (0x00401150) and the if ( v6 == 1762 ) condition in the pseudocode. This is the target value for the sum of the password's ASCII codes.
Determining the Password Length: If the sum of ASCII codes matches 1762, the program displays a hint message: "[+] so close !! here is a hint: \n you need it to be %d char\n". Before calling the print function (sub_401020), the value 11h is pushed onto the stack (push 11h at address 0x00401158), which corresponds to 17 in decimal. This value is used to format the %d string, indicating that the required password length is 17 characters.
Calculating the Password:
The task boils down to finding a 17-character string whose sum of ASCII codes equals 1762.
The average ASCII value per character is
1762
/
17
≈
103.65
1762/17≈103.65.
The closest ASCII codes are 'g' (103) and 'h' (104).
We set up a system of equations, where
n
g
n
g
is the number of 'g' characters and
n
h
n
h
is the number of 'h' characters:
n
g
+
n
h
=
17
n
g
+n
h
=17 (length condition)
103
⋅
n
g
+
104
⋅
n
h
=
1762
103⋅n
g
+104⋅n
h
=1762 (sum condition)
Solving the system yields:
n
h
=
11
n
h
=11 and
n
g
=
6
n
g
=6.
Result (Key): The password must consist of 17 characters: 6 'g' characters and 11 'h' characters. The order of the characters does not matter for passing the check. An example of a valid password is: gggggghhhhhhhhhhh.
Verification: Entering the password gggggghhhhhhhhhhh into the program results in the output messages "[+] so close !! ..." and "[+] although i know you can see it from a dissambler\n", confirming the correctness of the found key and the analysis.