CrackMe2
Challenge
Solution
int main(void) {
size_t taille_de_notre_input;
byte notre_input [112];
char key [20];
int flag_chiffre [20];
int i;
bool bon_flag;
flag_chiffre[0] = 0x2d;
flag_chiffre[1] = 0x64;
flag_chiffre[2] = 0x32;
flag_chiffre[3] = 0x67;
flag_chiffre[4] = 0x75;
flag_chiffre[5] = 0x3b;
flag_chiffre[6] = 0x4f;
flag_chiffre[7] = 0x16;
flag_chiffre[8] = 0x54;
flag_chiffre[9] = 0x42;
flag_chiffre[10] = 0x32;
flag_chiffre[11] = 0x72;
flag_chiffre[12] = 0x1b;
flag_chiffre[13] = 0x6b;
flag_chiffre[14] = 0x1e;
flag_chiffre[15] = 0x4;
flag_chiffre[16] = 0xe;
flag_chiffre[17] = 0x46;
flag_chiffre[18] = 0x15;
key[0] = 'n';
key[1] = '0';
key[2] = 't';
key[3] = '5';
key[4] = '0';
key[5] = 'r';
key[6] = '4';
key[7] = 'n';
key[8] = 'd';
key[9] = '0';
key[10] = 'm';
key[11] = 'C';
key[12] = 'h';
key[13] = '4';
key[14] = 'r';
key[15] = '5';
key[16] = 'h';
key[17] = 'u';
key[18] = 'h';
key[19] = '\0';
printf("Rentre le flag: ");
__isoc99_scanf(&DAT_00102015,notre_input);
taille_de_notre_input = strlen((char *)notre_input);
if (taille_de_notre_input == 0x13) {
bon_flag = true;
for (i = 0; i < 19; i = i + 1) {
if ((int)(char)(key[i] ^ notre_input[i]) != flag_chiffre[i]) {
bon_flag = false;
break;
}
}
if (bon_flag) {
puts("Bon flag!");
}
else {
puts("Mauvais flag!");
}
}
else {
puts("Mauvais flag!");
}
return 0;
}Mis à jour