crackme -002

Après ouverture, entrez le numéro de compte et le numéro de série pour juger.

Définissez un point d'arrêt dans la boîte à puces et ouvrez la pile

De msvbm50, nous pouvons voir qu'il s'agit d'un programme écrit en vb. Affichage avec clic droit

Il y a un saut jmp sur la ligne qui appelle le point d'arrêt. , Cela devrait être un saut inconditionnel pour enregistrer l'appel correct. Supposez ensuite qu'il y aura une instruction pour juger et passer à la ligne suivante de jmp. La recherche l'a vraiment trouvé.

Il y a une instruction je qui saute lorsque ZF est 1. Cela est lié au test ci-dessus.

Le test en une seule étape a vraiment transformé ZF en 1 après le test. test est l'opération ET.

Remplacez ZF par 0 avant je, le test est réussi.

Donc, juste NOP la ligne je.

Si vous enregistrez l'algorithme, trouvez le début de ce programme vers le haut et commencez à analyser progressivement.

Multiplié par 0x17CFB ci-dessus, il y a un saut de débordement ici

Après l'appel ci-dessus, "585235" est apparu

À ce stade, l'entrée 654321 est sortie.

 

Obtenez d'abord la longueur du code d'enregistrement, puis retirez la valeur ANSI cName du premier caractère du code d'enregistrement, puis calculez la longueur * 0x17CFB + cName, convertissez la valeur calculée en texte décimal et ajoutez "AKA-" devant pour former la finale Code d'enregistrement.

A publié 125 articles originaux · J'aime 31 · Plus de 60 000 visites

Je suppose que tu aimes

Origine blog.csdn.net/Fiverya/article/details/100939777
conseillé
Classement