jeanne-dhack-2026
REVERSE - LoL
2026-01-30easy#reverse#ghidra#crackme
On nous donne un exécutable. En l'envoyant dans Ghidra on remarque une fonction de validation de mot de passe.
Analyse
undefined8 FUN_0010127d(char *param_1) { undefined8 uVar1; char *local_10; for (local_10 = param_1; *local_10 != '\0'; local_10 = local_10 + 1) { } if ((long)local_10 - (long)param_1 == 0x1c) { if (((((((param_1[10] == '7') && (param_1[5] == 'r')) && (param_1[0x19] == 'n')) && ((*param_1 == 'y' && (param_1[0xe] == 'N')))) && (param_1[0x15] == 'l')) && (((((param_1[0xc] == 'r' && (param_1[0x12] == 'H')) && ((param_1[0xb] == 'e' && (((param_1[0x1b] == '!' && (param_1[4] == '4')) && (param_1[1] == '0')))))) && ((param_1[0x14] == '_' && (param_1[0xd] == 'I')))) && (param_1[3] == '_')))) && ((((param_1[0x11] == '7' && (param_1[9] == 'n')) && ((param_1[7] == '_' && (((param_1[2] == 'u' && (param_1[0x16] == 'E')) && (param_1[0x13] == 'e')))))) && (((param_1[0x10] == '_' && (param_1[0x17] == 'G')) && ((param_1[8] == 'e' && (((param_1[6] == '3' && (param_1[0xf] == 'g')) && ((param_1[0x1a] == 'D' && (param_1[0x18] == 'E')))))))))))) { uVar1 = 1; } else { uVar1 = 0; } } else { uVar1 = 0; } return uVar1; }
La fonction vérifie que la chaîne fait exactement 0x1c = 28 caractères, puis valide chaque caractère à un index précis.
Reconstruction du mot de passe
Il suffit de remettre les caractères dans l'ordre en suivant les indices :
| Index | Hex | Caractère |
|---|---|---|
| 0 | 0x00 | y |
| 1 | 0x01 | 0 |
| 2 | 0x02 | u |
| 3 | 0x03 | _ |
| 4 | 0x04 | 4 |
| 5 | 0x05 | r |
| 6 | 0x06 | 3 |
| 7 | 0x07 | _ |
| 8 | 0x08 | e |
| 9 | 0x09 | n |
| 10 | 0x0a | 7 |
| 11 | 0x0b | e |
| 12 | 0x0c | r |
| 13 | 0x0d | I |
| 14 | 0x0e | N |
| 15 | 0x0f | g |
| 16 | 0x10 | _ |
| 17 | 0x11 | 7 |
| 18 | 0x12 | H |
| 19 | 0x13 | e |
| 20 | 0x14 | _ |
| 21 | 0x15 | l |
| 22 | 0x16 | E |
| 23 | 0x17 | G |
| 24 | 0x18 | E |
| 25 | 0x19 | n |
| 26 | 0x1a | D |
| 27 | 0x1b | ! |
Le mot de passe est : you_4r3_en7erINg_7He_lEGEnD!
On l'entre dans le site pour débannir le compte et obtenir le flag.