Faction1405 on 8:35 PM 08/27/2024: q is determined by:
q = (rand() + 22) % 26 + 65
We have the following conditional:
q ^ correctBuf[i] | bWrong
If the left hand side of the following expression is ever true, bWrong will be set to 1, which makes the check always return true. You fail one character, you fail all of them.
For the left hand side of the expression to not be true, q must be equals to correctBuf[i] as they're XOR'ed together. The first character in correctBuf is "C", which is 67 in ordinal. Thus the first time around, q must be equals 67. Next time q must be equals "O", which is 79 in ordinal.
The solution involves writing a seed cracker, which then solves for the sequence 69, 79... (aka the "CORRECT" string).
There could be multiple seeds, however the one I found is:
2147139625
Rem00n on 7:32 PM 08/28/2024: @Faction1405 spot on, good job! =D
Pemptous on 3:58 PM 09/09/2024: this is a brute force key generator:
#include
#include
#include
int main(void)
{
int random_generated_value;int __cdecl main(int _Argc,char **_Argv,char **_Env)
{
int random_generated_value;
uint uVar1;
char wtext [8];
char ctext [8];
uint input;
int q;
int i;
bool w;
__main();
ctext[0] = 'C';
ctext[1] = 'O';
ctext[2] = 'R';
ctext[3] = 'R';
ctext[4] = 'E';
ctext[5] = 'C';
ctext[6] = 'T';
ctext[7] = '\0';
wtext[0] = 'W';
wtext[1] = 'R';
wtext[2] = 'O';
wtext[3] = 'N';
wtext[4] = 'G';
wtext[5] = '!';
wtext[6] = '!';
wtext[7] = '\0';
w = false;
printf("Password: ");
scanf("%d",&input);
srand(input);
for (i = 0; i
Cappybara on 5:26 PM 09/16/2024: pretty fun one to do
w_2024 on 6:41 PM 10/13/2024: Hello, I just write a brute force after found the source code:
#include
#include
int main(void) {
int random_number;
int q;
int verify = 0;
for (int k=-10000000; k
You must me logged to submit a solution
Write a comment
Share how awesome the crack me was or where you struggle to finish it! Stay polite and do not spoil the solution/flag!
Rate the difficulty
How would you rate the difficulty of this crackme ?