Bonjour,
Beaucoup d'entre vous ont déjà dû tomber sur ce script qui permet de décrypter le numéro de licence de Windows figurant dans le registre (ou en changeant de clé d'autres produits Microsoft). Avant même de tenter de démêler le fonctionnement de la double boucle imbriquée qui en est le moteur je bute au tout début sur ce qui semble être le traitement d'un entier comme un tableau. Ci-dessous le début de ce script :
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId est au format DWORD. Dans ce cas RegRead est censé renvoyer un entier, ce que confirme un Msgbox. Cette valeur est passée en argument à la fonction ConvertToKey où elle est contenue dans la variable Key mais, dans la dernière ligne que je cite, Key est manipulée comme s'il s'agissait d'un tableau !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Set WshShell = CreateObject("WScript.Shell") MsgBox ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId")) Function ConvertToKey(Key) Const KeyOffset = 52 i = 28 Chars = "BCDFGHJKMPQRTVWXY2346789" Do Cur = 0 x = 14 Do Cur = Cur * 256 Cur = Key(x + KeyOffset) + Cur
Je ne comprend ni comment ça peut fonctionner ni ne sais ce qu'est censée contenir la variable Cur. J'ai bien essayé de reproduire la même chose en travaillant sur une clé bidon crée pour l'occasion mais j'obtiens un message d'insultes (type invalide).
Bien qu'il ne s'agisse ici que de simple curioisté, j'aimerais pouvoir bénéficier de vos lumières.
En vous remerciant par avance.
Partager