Write up ndh crackme level 1
- Nom : cm1.exe
- Taille : 253 Ko
- MD5 : 9c33b45f25ce622940e47bbc95ecec07
On lance directement notre application dans Ollydbg. On va regarder la liste de tous les noms symboliques ( CTRL + N ) et on va s'intéresser à toutes les références de GetWindowTextA.
On a ses 2 références :
00401036 JMP DWORD PTR DS:[<&USER32.GetWindowText USER32.GetWindowTextA
00412082 CALL DWORD PTR DS:[<&USER32.GetWindowTex USER32.GetWindowTextA
La première n'est pas importante et n'est pas celle qui nous intéresse, dirigeons nous vers la deuxième :
00412082 . FF15 90314100 CALL DWORD PTR DS:[<&USER32.GetWindowTex>; \GetWindowTextA
Posons un breakpoint pour vérifier tout cela ( F2 ). Appuyons sur le bouton ok en laissant le texte par défaut : "CrAck Me". Ça break bien, on va step over ( F8 ) et regarder ce qui se passe :
004120AF . /0F84 79000000 JE cm1.0041212E
Juste après le saut conditionnel vérifiant que l'on ait bien rentré quelque chose on voit :
004120B5 . BA BC764100 MOV EDX,cm1.004176BC ; ASCII "qoellao"
Si en passant sur cette instruction on regarde dans la fenêtre de rappel des opérandes, on voit :
004176BC=cm1.004176BC (ASCII "roflmao")
EDX=0012FB05
Si on regarde le code qui suit on comprend vite que notre input va être comparé à ce mot, il ne reste plus qu'à le tester.
Et voila on récupére le hash pour la validation : daa2a4c70f78f028720e66ece1e30365.