Salut,
Il y a deux façons de stocker les MdP dans la base SAM locale (lorsqu'il n'y a pas de contrôleur de domaine bien sûr). Soit il s'agit de LM, soit de NTLM.
LM est très mauvais cryptographiquement puisqu'il s'agit de convertir de padder à 14 lettres en rajoutant des NULL caracters, de convertir tout en majuscule, et de le séparer en deux mots de passe de 7 caractères qui serviront de clés pour chiffrer un magic word "KGS!@#$%". Les deux résultats seront concaténés pour obtenir le chiffre LM de 16 caractères.
NTLM utilise la fonction de hachage MD4.
Pour cela, tu devras donc implémenter ces deux algorithmes dans ton programme ou utiliser des bibliothèques. Pour récupérer le hash des mots de passe, tu devras contourner la sécurité d'accès à la base SAM locale en utilisant la technique d'injection de DLL. Cette technique est utilisée par PWdump dont tu pourras t'inspirer largement.
Après, il ne te restera plus qu'à réaliser la partie bruteforce.
Cdlt
Google is your friend