On peut s' interroger sur ce jeu de caractères utilisé.
Il comporte 24 éléments, ce qui signifie tout simplement que
l' on est en présence de nombres représentés en base 24.
D' où cette mixité de lettres et chiffres (comme c' est déjà le
cas pour la représentation conventionnelle de nombre exprimés
en base hexadécimale).
Il fallait donc choisir 24 caractères parmi les 26 lettres de l' alphabet
et 10 chiffres.
Afin d' éviter toute confusion entre lettres et chiffres, Microsoft n'a
pas retenu les lettres et chiffres suivants :
A (confusion possible avec H)
E (confusion possible avec F)
I (confusion possible avec L ou 1)
L (confusion possible avec I ou 1)
N (confusion possible avec M)
O (confusion possible avec Q ou 0)
S (confusion possible avec 5)
U (confusion possible avec V)
Z (confusion possible avec 2)
0 (confusion possible avec O ou Q)
1 (confusion possible avec I ou L)
5 (confusion possible avec S)
Par contre, il est regrettable que Microsoft ait laissé possible la
confusion entre B et 8 .
Les chiffres de cette base 24 correspondent aux valeurs décimales suivantes :
B = 0 Q = 10 6 = 20 Puissances de 24
C = 1 R = 11 7 = 21 24^1 24
D = 2 T = 12 8 = 22 24^2 576
F = 3 V = 13 9 = 23 24^3 13824
G = 4 W = 14 24^4 331776
H = 5 X = 15 24^5 7962624
J = 6 Y = 16 ... ...
K = 7 2 = 17
M = 8 3 = 18
P = 9 4 = 19
Exemples :
2B7Q8 est le codage en base 24 de :
2 = 17 x 24^4 5640192
B = 0 x 24^3 0
7 = 21 x 24^2 12096
Q = 10 x 24^1 240
8 = 22 x 24^0 22
5652550 (en hexadécimal : 0x564046)
Inversement, le codage en base 24 de 2005 (en décimal) est :
2005 / 24 = 83 reste 13 V
83 / 24 = 3 reste 11 R
3 / 24 = 0 reste 3 F
FRV
Contrairement au ProductID, il n' existe pas dans la base de registres d' entrée contenant en clair (5 fois 5 caractères) la clef de produit (ProductKey).
On trouve seulement une entrée nommée DigitalProductID de type
REG_BINARY.
Cette entrée concerne Windows, mais aussi des applications telles que
Office, Visio, FrontPage, OneNote, Money, Internet Explorer ...
Sa taille est de 164 octets en général, mais peut atteindre parfois
(cas de Internet Explorer) 256 octets.
Le nombre maximal que l' on peut coder est donc 24^25 -1 (nombre
de 25 chiffres compris entre 0 et 23), soit 3,2 x 10^34 comme cité plus
haut.
Exprimé en puissances de 16, ce nombre est de l' ordre de 16^29.
Donc pour le représenter en base 16, il faudra 29 "chiffres" hexadécimaux,
soit, après arrondi, 15 octets (1 octet étant représenté par
2 chiffres hexadécimaux).
Cette représentation binaire de la ProductKey est appelée "Raw
Key" (clef brute) C' est ce que l' on observe dans toutes entrées
DigitalProductID,
la Raw Key étant stockée sur 15 octets, entre les offsets 0x34 à 0x42.
Ne pas oublier que dans les architectures "Intel" (et compatible),
les grandeurs binaires sont représentées en "Little Endian",
c'est à dire que les octets de poids faibles sont en tête.
Dans l' exemple ci-contre, la Raw Key est le nombre (en hexadécimal)
03D3FC979F6BA773C899DEA7EF6380
On peut être amené à réinstaller des logiciels
Microsoft (Windows, Office,..)
Pour cela il faut ressaisir la ProductKey au cours de la procédure d'
installation.
Or cette clef étant souvent fournie sous la forme d' un autocollant
posé sur
l' emballage, il arrive fréquemment que l' on ait perdu cette clef.
D' où l' intérêt de pouvoir obtenir la ProductKey en clair, par conversion de la "RAW key" en nombre exprimé en base24.
En raison de la grandeur des nombres rencontrés, cette conversion ne
peut se faire que par programmation.
Avec de possibles variantes, l' algorithme est
toujours le même :
On effectue une division euclidienne du nombre par 24.
Le reste obtenu est le chiffre en base 24 des unités.
Puis on recommence la division euclidienne sur le quotient,
et ainsi de suite, jusqu'au ce que le quotient soit nul.
Chaque reste est un chiffre de poids de plus en plus fort.
Exemple :
Conversion de 7D5 (représentation hexadécimale de 2005) en base
24
(18 est la représentation hexadécimale de 24)
7D5 = 53 x 18 + 0D V
53 = 3 x 18 + 0B R
3 = 0 x 18 + 03 F
FRV
Il existe différents outils qui effectuent cette conversion :
Le 1er de cette catégorie fut le logiciel Aida32.
Mais c' est devenu un produit commercial (Everest)
Et seules les versions payantes donnent les "ProductKey".
L ancienne version gratuite est ICI
Relation entre ProductKey et ProductID
En raison de l' absence de toute documentation de la part de Microsoft, ces
informations sont susceptibles d' évoluer au fur et à mesure
des expérimentations effectuées.
Malgré la présence de la ProductKey, le ProductID subsiste toujours car c' est lui qui permet à Microsoft de détecter la provenance authentique ou frauduleuse du logiciel correspondant.
C' est ainsi que le Service Pack 1 (et suivants) de Windows XP refuse de s'
installer sur les machines dotées dont le ProductID est de la forme
:
XXXXX-640-0000356-23XXX
XXXXX-640-2001765-23XXX
car il dénote l' utilisation de clefs "pirates" de Windows
XP PRO Corporate (licence en volume, qui ne nécessite pas d'activation,
réservée aux professionnels).
Cette information est extraite du document Microsoft Technical Details on SP1
Changes to Microsoft Product Activation for Windows XP.
Lors de la sortie du SP1 (2002), ce document était disponible sur le
site Microsoft à l' adresse http://www.microsoft.com/piracy/basics/activation/WPA_SP1_Market_Bulletin.doc
mais il a disparu du site, on se demande pourquoi ?.
C'est par un procédé analogue que WGA (Windows Genuine Advantage)
autorise ou non les télé chargements (hors correctifs de sécurité)
Alors que le ProductID était autrefois saisi manuellement par l' utilisateur,
et constituait le seul identificateur du produit, il est à présent
dérivé de la ProductKey, par un algorithme (hachage) relativement
complexe.
Microsoft ne fait qu 'évoquer cet algorithme dans le document cité précédemment.
Il est contenu dans la DLL PIDgen.dll (située dans %systemroot%\system32)
(PIDgen = acronyme de Product Identifier Generator)
On peut néanmoins trouver des informations très pertinentes à ce sujet dans le document Inside Windows Product Activation dû à la Compagnie Licenturion spécialisée dans les solutions de protections de logiciels.
L'algorithme ProductID=f(ProductKey) dépend du produit (Windows, Suite Office, Money, ...)
Ce qui suit ne concerne que Windows :
Opérations Exemples
Il faut tout d' abord convertir la ProductKey
(5 fois 5 caractères) en RAWkey binaire
comme exposé précédemment FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8
->
00C8D5F1B880E1C0EC45F9CC4B4046
(big endian)
Puis retenir les 31 1ers bits de poids faibles
(équivalent à effectuer un AND logique avec 0x7FFFFFFF) 4C4B4046
Puis décaler d' un bit vers la droite le résultat
(équivalent à une division euclidienne par 2) 2625A023
Convertir le résultat en décimal
(ajouter éventuellement des 0 en tête afin que le résultat
comporte 9 chiffres) 640000035
Scinder ce nombre en 2 parties constituées des 3 premiers et des 6 derniers
chiffres. 640
000035
Multiplier le 2ème nombre par 10, et lui ajouter un chiffre de telle
façon que la somme de tous les chiffres soit un multiple de 7 0000350
+ 6
(0+0+0+0+3+5+6 = 2x7)
La partie centrale du ProductID est donc : 640-0000356
dans cet exemple, on retrouve un ProductID de ProductKey "blacklistée"
par le Service Pack 1 de Windows XP, qui dénote donc une clef "pirate"!
Seuls les 2ème et 3ème nombres sont utiles ici pour détecter la "provenance" d' une ProductKey.
Le chiffre des centaines du 2ème nombre indique la catégorie du logiciel
0xx : licence au détail
2xx : licence contrat Select
3xx : licence MSDN
6xx : licence en volume ("Corporate")
7xx : licence OEM
A partir de là on peut extraire des clés non black listés pour les xp avant début 2004 car après il semble que microsoft ai modifié l algorithme des clés suite a la publication d un logiciel de calcul sur le net que semble t il n est plus publié.
Je vous propose donc la version béta valable pour les premiers xp ICI
ATTENTION valable aussi pour xp home et pro avec des cles corporate.
ce qui permet d actuver ces xp sans passer par microsoft.
La procédure d'activation de Windows XP par microsoft.
Une nouvelle disposition (MPA = "Microsoft Product Activation")
est apparue avec Windows XP (concerne aussi Office XP, Visio 2002, Project
2002, Windows 2003, et au delà) afin de lutter contre les copies illicites
de logiciel.
Ainsi il n' est plus possible, en ne possédant qu 'une seule licence,
de "cloner" allègrement sur "n" machines différentes
un CDROM de Windows (officiel ou non !).
La mise en oeuvre de cette protection est effectuée au cours de l' installation
et tout au long de l' utilisation de Windows.
Les informations qui suivent sont tirées en partie du site Microsoft
:
http://www.microsoft.com/france/windows/xp/pro/utilisez/info/info.asp?mar=/france/windows/xp/pro/utilisez/info/activation.html
(NB: ce lien est très "mouvant"!)
Mode opératoire de la MPA
Phase 1
Installation de XP sur une machine.
Windows est toute de suite opérationnel, mais pendant un temps limité (30
jours) pendant lequel il va falloir "l'activer"
Phase 2
Activation de Windows.
Elle a lieu, au choix :
* soit par Internet (fait par le système)
* soit par téléphone (fait par l' utilisateur)
Il est communiqué à Microsoft :
* l' identifiant de la licence
* un identifiant généré automatiquement par l' installation,
en fonction de 10 paramètres matériels de la machine :
1. Carte graphique
2. Carte SCSI
3. Carte IDE
4. Carte réseau - adresse MAC
5. Mémoire RAM
6. Type de processeur
7. Numéro de série du processeur
8. Taille du disque dur
9. Numéro de série du disque dur
10. présence de lecteur de CDROM / CD-RW / DVD-ROM
Au total, cela représente un code à 50 chiffres.
Ces paramètres ont des pondérations différentes. Par exemple
la carte réseau a un "poids" important, c' est en effet un élément
qu' on a moins tendance à changer sur une même machine que de
la RAM.
A partir de ces identifiants le serveur Microsoft vérifie que la machine
:
* soit n'a jamais été encore activée
* soit qu 'elle l'a déjà été mais que les modifications
sont mineures (cf. seuils plus bas).
Si c' est le cas, un code d'activation est retourné, et Windows XP est
alors opérationnel, sans limitation de durée.
L'activation est ANONYME.
La seule information à fournir est le nom du pays.
Par exemple le disque dur n' est pas analysé.
Si Windows n'a pas été activé et que le temps fatidique de 30 jours a été dépassé, on ne peut plus ouvrir de session (mais seulement déclencher la procédure d'activation)
. Phase 3
Ensuite, à chaque démarrage de Windows, une vérification
de cohérence entre le code d'activation et l'identifiant matériel
est effectuée.
Si trop de différences sont constatées, une nouvelle procédure
d'activation est requise.
(par Internet, mais limitée à 4 fois par an, ou alors par téléphone)
Les seuils de différences
2 cas sont à distinguer :
1. Si une carte réseau existe et reste inchangée :
6 ou plus des valeurs énumérées ci-dessus doivent changer
pour que l'activation soit requise.
2. Si une carte réseau existe et a été modifiée
ou si elle n'a jamais existé :
4 ou plus des valeurs énumérées ci-dessus doivent changer
pour que l'activation soit requise.
Remarques
* L' ajout de composants à un PC, comme un nouveau
disque dur absent au départ, n' oblige pas à réactiver
* La modification d' un composant non listé dans le tableau (Webcam,
scanner, carte son, ...) n' oblige pas à réactiver
* On peut réactiver autant de fois que l' on veut une même machine
après réinstallation de Windows XP.
* L'activation (ou réactivation) automatique via Internet est possible 4
fois par an. (au delà, il faut procéder par voie téléphonique)
Les entreprises ayant un parc important de machines sont dispensées de cette procédure d'activation par l' utilisation d' une version spéciale de XP, dite "Corporate" (évidemment très recherchée par les "hackers" )
sando pour les arf