Bonjours, et bienvenue pour ce 3e tuto, qui je l’avoue a mis un peu de temps a venir !
Nous allons cette fois ci changer radicalement notre technique, car a la place de changer la vérification de mot de passe par un nop, nous allons trouver un mot de passe valide !
Pour réaliser ce tuto, vous aurez besoin :
- ollydbg
- Le CrackMe 1 de TheHardButcher Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Comme pour la dernière fois, je sais vu que je l’ai crée qu’il n’est pas packer, donc je n’utilise pas PEID pour voir si il l’est.
Je vais donc directement l’ouvrir dans ollydbg et chercher dans les strings data references ( je sais déjà un peu ce que je fait car le crackme a déjà été utilisé pour le dernier tuto )
Et je retrouve facilement la position que j’avais avant.
Pour réussir a trouver le pass juste, je vais exécuter le programme pas par pas a partir d’un point défini qui sera un Break Point.
Quand le programme est lancé ( bouton play ) il ne s’arrêtera pas tant qu’il n’y aura pas de break point ou d’attente sur l’utilisateur.
Je met donc un Break Point grace a la touche F2 sur
004013A2 �. C70424 0A3140 MOV DWORD PTR SS:[ESP],OFFSET TheHardBut ; ASCII « %d »
Qui est la demande de pass ( pas encore la vérification )
Je lance donc le programme avec le petit bouton play, et le programme break directement.
J’utilise ensuite les bouton F7 et F8 pour faire des Step into et Step Over. Pour faire simple, je vais exécuter le programme ligne par ligne, mais les step into rentrerons dans les call.
Je fait donc F8 jusqu’à ce que la demande de mot de passe soit totalement faite et rentre un pass au hazard.
Ensuite, je continue mon avancé jusqu’au
004013C6 �. 3D D76A641B CMP EAX,1B646AD7
Qui est une comparaison entre 2 membre, EAX et le nombre hexadécimal 1B646AD7.
Je voit en haut a droite en double cliquant sur EAX que sa valeur signé est égal a notre pass rentrée, je sais donc que le pass entrée est comparé a 1B646AD7 qui doit être le bon pass !
Pour convertir rapidement, je vous conseil de double cliquer sur l’un des registre, de donner votre valeur hexa, et vous la verrez directement en variable signé et non signé.
Faite ensuite Annulez et tester le pass qui doit être 459565783, magnifique ça marche !
Nous avons donc trouvez le bon pass, et nous savont, vu que le pass rentrée était dans le registre EAX et que ce dernier était comparé a une valeur fixe et que ce pass est le seul et unique qui marche !
Voila, cette fois ci, vous devez être un peu déboussolez, mais ne vous inquiétez pas, les prochains tuto vous aiderons a bien assimiler l’utilisation d’olly car nous allons faire la même manipulation avec des programmes légèrement différent du premier !
Merci a tous pour votre lecture !
-> TheHardButcher
Nous allons cette fois ci changer radicalement notre technique, car a la place de changer la vérification de mot de passe par un nop, nous allons trouver un mot de passe valide !
Pour réaliser ce tuto, vous aurez besoin :
- ollydbg
- Le CrackMe 1 de TheHardButcher Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Comme pour la dernière fois, je sais vu que je l’ai crée qu’il n’est pas packer, donc je n’utilise pas PEID pour voir si il l’est.
Je vais donc directement l’ouvrir dans ollydbg et chercher dans les strings data references ( je sais déjà un peu ce que je fait car le crackme a déjà été utilisé pour le dernier tuto )
Et je retrouve facilement la position que j’avais avant.
Pour réussir a trouver le pass juste, je vais exécuter le programme pas par pas a partir d’un point défini qui sera un Break Point.
Quand le programme est lancé ( bouton play ) il ne s’arrêtera pas tant qu’il n’y aura pas de break point ou d’attente sur l’utilisateur.
Je met donc un Break Point grace a la touche F2 sur
004013A2 �. C70424 0A3140 MOV DWORD PTR SS:[ESP],OFFSET TheHardBut ; ASCII « %d »
Qui est la demande de pass ( pas encore la vérification )
Je lance donc le programme avec le petit bouton play, et le programme break directement.
J’utilise ensuite les bouton F7 et F8 pour faire des Step into et Step Over. Pour faire simple, je vais exécuter le programme ligne par ligne, mais les step into rentrerons dans les call.
Je fait donc F8 jusqu’à ce que la demande de mot de passe soit totalement faite et rentre un pass au hazard.
Ensuite, je continue mon avancé jusqu’au
004013C6 �. 3D D76A641B CMP EAX,1B646AD7
Qui est une comparaison entre 2 membre, EAX et le nombre hexadécimal 1B646AD7.
Je voit en haut a droite en double cliquant sur EAX que sa valeur signé est égal a notre pass rentrée, je sais donc que le pass entrée est comparé a 1B646AD7 qui doit être le bon pass !
Pour convertir rapidement, je vous conseil de double cliquer sur l’un des registre, de donner votre valeur hexa, et vous la verrez directement en variable signé et non signé.
Faite ensuite Annulez et tester le pass qui doit être 459565783, magnifique ça marche !
Nous avons donc trouvez le bon pass, et nous savont, vu que le pass rentrée était dans le registre EAX et que ce dernier était comparé a une valeur fixe et que ce pass est le seul et unique qui marche !
Voila, cette fois ci, vous devez être un peu déboussolez, mais ne vous inquiétez pas, les prochains tuto vous aiderons a bien assimiler l’utilisation d’olly car nous allons faire la même manipulation avec des programmes légèrement différent du premier !
Merci a tous pour votre lecture !
-> TheHardButcher