Compréhension d'un convertisseur
Résolu
Ticki84
Messages postés
950
Statut
Membre
-
Ticki84 Messages postés 950 Statut Membre -
Ticki84 Messages postés 950 Statut Membre -
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 - Guide
- Convertisseur mp3 gratuit pour pc - Télécharger - Conversion & Extraction
- Code ascii convertisseur - Guide
- Convertisseur récupération de texte - Guide
- Convertisseur de monnaie - Télécharger - Banque & Budget