J'ai un fichier binaire et je suis censé déchiffrer son mot de passe (devoirs). Il y avait aussi une fonction donnée (une fonction qui fait partie du fichier binaire). Cette fonction a montré que la chaîne d'entrée a été comparée avec le mot de passe correct, caractère par caractère, et a renvoyé la valeur false instantanément lorsqu'un caractère était erroné (ce n'est pas une manière sûre de le faire, je suppose, car le temps nous est compté et nous avons une idée de la longueur correcte du mot de passe. Exemple). Mais notre professeur a ajouté une minuterie aléatoire qui renvoie le résultat (Correct / Wrong) pour le rendre un peu plus difficile pour nous ...
Quoi qu'il en soit, j'ai déjà réussi le reverse engineering et obtenu le mot de passe correct. Maintenant, je joue avec cela dans la ligne de commande:
/usr/bin/time -v ./program_name enter_password
Avec cette commande, je reçois beaucoup d’informations telles que l’heure système, les swaps, le temps d’exécution… Mais ce qui m’intéresse le plus, c’est "Changements de contexte volontaires" car plus le mot de passe saisi est correct, moins "Changements de contexte volontaires". " Je reçois!
Plus le nombre de caractères erronés que je saisis est grand, plus je reçois de "changements de contexte volontaires".
Il m'a fallu près de deux heures pour déchiffrer le mot de passe simplement en entrant cette commande, en entrant des caractères et en observant "Changements de contexte volontaires". Quand UN caractère était correct, les "Changements de contexte volontaires" diminuaient de un.
Ma question, que sont exactement les "changements de contexte volontaires" et pourquoi m'ont-ils aidé à déchiffrer le mot de passe?