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.