Windows ProductKey

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
phoenixx592
User
Beiträge: 66
Registriert: Sonntag 25. Juni 2017, 16:41

Hallo Freunde,
Kruze frage habe meine Product ID von windows ausgelesen mit :

Code: Alles auswählen

    def DecodeProductKey(digitalProductId):
        _map = list('BCDFGHJKMPQRTVWXY2346789')
        _key = list(range(0, 29))
        _raw = list(digitalProductId)[52:-97]

        i = 28
        while i >= 0:
            if (i + 1) % 6 == 0:
                _key[i] = '-'
            else:
                k = 0
                j = 14
                while j >= 0:
                    k = (k * 256) ^ int(_raw[j])
                    _raw[j] = k / 24
                    k %= 24
                    _key[i] = _map[k]
                    j -= 1
            i -= 1

        return ''.join(map(str, _key))


    if __name__ == '__main__':
        with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\Windows NT\CurrentVersion') as ok:
            v, t = winreg.QueryValueEx(ok, 'DigitalProductId')
            print(DecodeProductKey(v))
aber bei meiner regystry wenn ich manuell reingehe und mir den Key auslese zeigt er mir einen anderen an wieso ? :K :lol: :lol: :lol: :lol:
Zuletzt geändert von Anonymous am Sonntag 2. Juli 2017, 17:31, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@phoenixx592: Hast Du denn dann auch manuell das ausgerechnet was `DecodeProductKey()` mit dem Wert aus der Registry macht? Denn das was Du in der Registry siehst, ist ja der Wert der an `v` gebunden wird und nicht das was nach dem Dekodieren mit `print()` ausgegeben wird.
phoenixx592
User
Beiträge: 66
Registriert: Sonntag 25. Juni 2017, 16:41

Nein, in der regedit folgende angaben unter SOFTWARE\Microsoft\Windows NT\CurrentVersion:
- (standart)
- DigitalProductId
- DigitalProductId4
- ProductId

was ich jetzt vorhatte ist die ProductId auslesen bzw. dann verändern, das problem ist aber das er mir die flasche Id ausgibt :/

schau mal bei dir in der Reg nach dann weißt du was ich meine :)
phoenixx592
User
Beiträge: 66
Registriert: Sonntag 25. Juni 2017, 16:41

okay Rechtschreibfehler funktioniert jetzt :D :wink:
phoenixx592
User
Beiträge: 66
Registriert: Sonntag 25. Juni 2017, 16:41

Aber jetzt mal unter uns , ich habe diese Zeile:

Code: Alles auswählen

v, t = winreg.QueryValueEx(ok, 'DigitalProductId')
in diese Zeile

Code: Alles auswählen

v, t = winreg.QueryValueEx(ok, 'ProductId')
geändert aber beide müssten doch das gleiche anzeigen oder ?
Das eine ist doch nur die Binärdatei oder nicht? :roll: :roll:
Antworten