Compréhension d'un convertisseur
Résolu
Ticki84
Messages postés
850
Date d'inscription
Statut
Membre
Dernière intervention
-
Ticki84 Messages postés 850 Date d'inscription Statut Membre Dernière intervention -
Ticki84 Messages postés 850 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train d'essayer de faire un Key Recovery Tool qui se base sur Regedit, le problème c'est qu'il me faudrait convertir cette valeur, pour cela, je me base sur ce code:
Ce que je n'arrive pas à comprendre est cette partie:
Qui fait office de convertisseur.
Je ne comprends aucune de ces valeurs (i, j, x, /24, 0x34, etc.) donc si on pourrait m'expliquer, merci.
Je suis en train d'essayer de faire un Key Recovery Tool qui se base sur Regedit, le problème c'est qu'il me faudrait convertir cette valeur, pour cela, je me base sur ce code:
#include <iostream> #include <windows.h> using namespace std; int main() { HKEY hKey; DWORD dwBufSize = 200; UCHAR dwReturn[200]; UCHAR digits[] = {'B','C','D','F','G','H','J','K','M','P','Q','R','T','V','W','X','Y','2','3','4','6','7','8','9'}; UCHAR strresult[26]; if( RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) { DWORD error = RegQueryValueEx(hKey,"DigitalProductId",0,0, (LPBYTE)dwReturn, &dwBufSize); if(error == ERROR_SUCCESS) { for (int i=24;i>=0;i--) { int x=0; for (int j=14;j>=0;j--) { x = (x<<8) + (dwReturn+0x34)[j]; (dwReturn+0x34)[j] = x / 24; x = x % 24; } strresult[i]=digits[x]; } string part1, part2, part3, part4, part5; string str; string strRetVal; for(int i = 0; strresult[i] != 0; i++) { str += strresult[i]; } part1 = str.substr(0,5) + "-"; part2 = str.substr(5,5) + "-"; part3 = str.substr(10,5) + "-"; part4 = str.substr(15,5) + "-"; part5 = str.substr(20,5); strRetVal = part1 + part2 + part3 + part4 + part5; cout << "Windows Key : " << strRetVal << endl; } else { cout << "Cannot query for key value; Error is : " << error << ", dwBufSize="<<dwBufSize<<endl; } } RegCloseKey(hKey); return 0; }
Ce que je n'arrive pas à comprendre est cette partie:
for (int i=24;i>=0;i--) { int x=0; for (int j=14;j>=0;j--) { x = (x<<8) + (dwReturn+0x34)[j]; (dwReturn+0x34)[j] = x / 24; x = x % 24; } strresult[i]=digits[x]; }
Qui fait office de convertisseur.
Je ne comprends aucune de ces valeurs (i, j, x, /24, 0x34, etc.) donc si on pourrait m'expliquer, merci.
A voir également:
- Compréhension d'un convertisseur
- Convertisseur mp3 - Télécharger - Conversion & Extraction
- Convertisseur YouTube MP3 : toutes les solutions gratuites - Guide
- Code ascii convertisseur - Guide
- Convertisseur récupération de texte - Guide
- Convertisseur de monnaie - Télécharger - Banque & Budget