IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Traitement clé registre mystérieux


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 29
    Points : 7
    Points
    7
    Par défaut Traitement clé registre mystérieux
    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 :

    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
    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 !

    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.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 265
    Points : 1 843
    Points
    1 843
    Par défaut
    Regarde dans ton registre et tu verras que la clé DigitalProductId est de type REG_BINARY (chez moi sous windows 10), et regRead renvoie alors un tableau d'entiers
    https://www.vbsedit.com/html/1b56750...e49ab3a015.asp

    Le mystère est résolu

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Oh là là, il va falloir que je pense à changer de lunettes. Comment ai-je pu lire DWORD à la place de REG_BINARY ?

    Un grand merci pour cette prompte réponse.

    Heffgé

Discussions similaires

  1. [AC-2010] Création clé registre - Mise à jour d'un traitement
    Par Manhexter dans le forum VBA Access
    Réponses: 1
    Dernier message: 27/08/2013, 11h38
  2. [Windows]accès base de registre windows
    Par Greg01 dans le forum API standards et tierces
    Réponses: 27
    Dernier message: 05/06/2007, 15h14
  3. Accès à la base de registre windows à distance
    Par xavame dans le forum Sécurité
    Réponses: 4
    Dernier message: 13/07/2005, 15h23
  4. registre de connexion windows internet
    Par lafaryan dans le forum Web & réseau
    Réponses: 2
    Dernier message: 21/08/2002, 12h52
  5. Utilisez vous la base de registres ?
    Par gRRosminet dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/06/2002, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo