Hex in Dez umwandeln - innerhalb einer Batchdatei (ProductID auslesen)
Hallo Gemeinde,
ich bin noch am Leben
Mir geht es ebenso ausschließlich darum, wie hier Hex in Dez umwandeln innerhalb einer Batchdatei, SAFER HASH-Regeln erstellen
Hex in Dez umwandeln innerhalb einer Batchdatei, SAFER HASH-Regeln erstellen
Gibt es eine einfache Variante die Produktschlüsseln für MS-Office aus der Registrierungsdatenbank, die dort in den "ProductID"-REG-BINARY-Werten im hexadezimalen Zahlensystem eingetragen sind, auszulesen (im Klartext umzuwandeln und in eine txt-Datei abzuspeichern)?
Dies befindet sich meist in einem oder unterschiedlichen Unterschlüssel unterhalb von
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Registration
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Registration
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Registration
usw.. Diese Schlüsselnamen bestehen aus einer ID der durchgeführten Installationen, was aber hier nicht so relevant sein muss vermutlich, da einfach alles unterhalb nach diesem "ProductID"-Wert leicht durchgesucht werden kann.
Mir geht wesentlich nur darum diese hexadezimalen Zahlen korrekt umzuwandeln, sodass dann bei der Installation die Eingabe des Lizenz-Schlüssels klappt.
(muss auf mehreren Rechner die Produkt-IDs manuell auslesen, um dann eine Neuinstallation vorzunehmen - sicherlich wird es zum Auslesen von Windows Lizenzschlüsseln nachdem gleichen Schema funktionieren, wenn der übergeordnete Registry-Schlüssel angepasst wird - dies würde mir dann nämlich ein Entfernen von Akkus und manuelles Ablesen ersparen)
PS. wie immer auf fremde Tools hab ich keine Lust, sonst wäre ich nicht hier bei ADMINISTRATOR
Und wie immer ist mir Batch bisher weiterhin am liebsten.
Gruß
evinben
ich bin noch am Leben
Mir geht es ebenso ausschließlich darum, wie hier Hex in Dez umwandeln innerhalb einer Batchdatei, SAFER HASH-Regeln erstellen
Hex in Dez umwandeln innerhalb einer Batchdatei, SAFER HASH-Regeln erstellen
Gibt es eine einfache Variante die Produktschlüsseln für MS-Office aus der Registrierungsdatenbank, die dort in den "ProductID"-REG-BINARY-Werten im hexadezimalen Zahlensystem eingetragen sind, auszulesen (im Klartext umzuwandeln und in eine txt-Datei abzuspeichern)?
Dies befindet sich meist in einem oder unterschiedlichen Unterschlüssel unterhalb von
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Registration
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Registration
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Registration
usw.. Diese Schlüsselnamen bestehen aus einer ID der durchgeführten Installationen, was aber hier nicht so relevant sein muss vermutlich, da einfach alles unterhalb nach diesem "ProductID"-Wert leicht durchgesucht werden kann.
Mir geht wesentlich nur darum diese hexadezimalen Zahlen korrekt umzuwandeln, sodass dann bei der Installation die Eingabe des Lizenz-Schlüssels klappt.
(muss auf mehreren Rechner die Produkt-IDs manuell auslesen, um dann eine Neuinstallation vorzunehmen - sicherlich wird es zum Auslesen von Windows Lizenzschlüsseln nachdem gleichen Schema funktionieren, wenn der übergeordnete Registry-Schlüssel angepasst wird - dies würde mir dann nämlich ein Entfernen von Akkus und manuelles Ablesen ersparen)
PS. wie immer auf fremde Tools hab ich keine Lust, sonst wäre ich nicht hier bei ADMINISTRATOR
Und wie immer ist mir Batch bisher weiterhin am liebsten.
Gruß
evinben
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 269724
Url: https://administrator.de/contentid/269724
Ausgedruckt am: 24.11.2024 um 12:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo evinben.
Das Thema hat überhaupt nichts mit Hex zu Dez zu tun. Der Produktkey ist kein Dezimalwert und der Algorithmus um aus dem Registrywert den Key zu berechnen ist ein vollkommen anderer.
2. Der Key heißt sicher auch bei dir "DigitalProductID" und nicht nur "ProductID".
Grüße
rubberman
Edit: Für 64Bit Systeme erweitert.
Das Thema hat überhaupt nichts mit Hex zu Dez zu tun. Der Produktkey ist kein Dezimalwert und der Algorithmus um aus dem Registrywert den Key zu berechnen ist ein vollkommen anderer.
... da einfach alles unterhalb nach diesem "ProductID"-Wert leicht durchgesucht werden kann.
1. Wenn's so einfach ist, warum brauchst du unsere Hilfe?2. Der Key heißt sicher auch bei dir "DigitalProductID" und nicht nur "ProductID".
wie immer auf fremde Tools hab ich keine Lust
Wenn bei mir nicht gerade der Spieltrieb durchgekommen wäre, hätte ich dir was erzählt von wegen bereits erfundener runder Räder eckig neu erfinden.@echo off &setlocal EnableDelayedExpansion
for %%i in (
"" "\Wow6432Node"
) do for /f "delims=" %%j in (
'2^>nul reg query "HKLM\SOFTWARE%%~i\Microsoft\Office"^|findstr /e "\\[0-9][0-9]*\.[0-9]"'
) do for /f "delims=" %%k in (
'2^>nul reg query "%%j\Registration"^|findstr /e "\\{........-....-....-....-............}"'
) do for /f "tokens=3" %%l in (
'2^>nul reg query "%%k" /v "DigitalProductID"'
) do (
set "version=%%j"
call :GetProductKey %%l sProdKey
echo ~~~
echo Version: !version:~-4!
echo Produktkey: !sProdKey!
echo ~~~
)
pause
exit /b
:GetProductKey inDigitalProdID outVarName
setlocal EnableDelayedExpansion
set "sKeyChar=BCDFGHJKMPQRTVWXY2346789"
set "sHex=%~1"
set /a "n = 52"
for /l %%i in (104,2,132) do set /a "aRegValue_!n! = 0x!sHex:~%%i,2! , n += 1"
for /l %%b in (24,-1,0) do (
set /a "c = 0 , n = %%b %% 5"
for /l %%i in (66,-1,52) do set /a "c = (c << 8) + !aRegValue_%%i! , aRegValue_%%i = c / 24 , c %%= 24"
for %%j in (!c!) do set "sProductKey=!sKeyChar:~%%j,1!!sProductKey!"
if %%b neq 0 if !n!==0 set "sProductKey=-!sProductKey!"
)
endlocal &set "%~2=%sProductKey%" &exit /b
rubberman
Edit: Für 64Bit Systeme erweitert.
Hallo evinben.
An deiner Stelle hätte ich mal mit einem aktuellen Keyfinder getestet. Andere Leute haben sich da sicher bereits Gedanken gemacht, bevor sie eine Software veröffentlichen. Wie schon geschrieben - das Rad neu erfinden zu wollen, ist nicht unbedingt die beste Vorgehensweise...
Grüße
rubberman
Mir geht es wie immer darum, dass ich e verstehe und im Batch bin ich einfach erstmals besser aufgehoben.
Das ist einleuchtend. Allerdings glaube ich nicht, dass du per copy/paste des Codes den Decryption-Algorithmus verstanden hast.(bin eigentlich vom völlig anderen Beruf her, aber gut)
Willkommen im Club.Diese Lösung hier fand ich zwar auch raffiniert
Die macht exakt das gleiche. Eigentlich ist es in VB wesentlich einfacher als in Batch. Der Kollege dort hat es etwas umständlich umgesetzt.Es kam jeweils die Fehlermeldung, dass der Schlüsse nicht korrekt sei.
Bin auch auf Win7 unterwegs, allerdings noch mit dem alten Office 11.0 (2003). Dort ist der Schlüssel korrekt, habe ihn verglichen. Ich weiß nicht ob MS mittlerweile daran gedreht hat.An deiner Stelle hätte ich mal mit einem aktuellen Keyfinder getestet. Andere Leute haben sich da sicher bereits Gedanken gemacht, bevor sie eine Software veröffentlichen. Wie schon geschrieben - das Rad neu erfinden zu wollen, ist nicht unbedingt die beste Vorgehensweise...
Grüße
rubberman
Hallo evinben.
Hehe, ich meinte damit eigentlich, dass ich auch absolut nicht vom Fach bin. Wie mein Nickname und mein Avatar evtl. erkennen lassen, könnte ich weitaus mehr zum Thema hochpolymere Werkstoffe und deren Verarbeitung erklären, als ich das zu irgendwelchen IT Themen je könnte
Ist aber so. Batch kennt keinen Array-Typ, was die Sache wirklich nicht einfacher macht. Der Umweg über Strings und ein assoziatives Array ist eigentlich Humbug, für Batch ist mir aber nichts besseres eingefallen.
Grüße
rubberman
Willkommen im Club.
ich fühle mich hier ganz wohl.Eigentlich ist es in VB wesentlich einfacher als in Batch.
dies kann ich mir nur schwer vorstellen... ich bezog mich nicht auf den Algorithmus. Das funktioniert doch zweifelsfrei einwandfrei !
Was zu beweisen wäre. Wenn der Key bei anderen Windows- oder Office-Versionen anders oder woanders abgelegt ist, mag der Algorithmus zwar immer noch funktionieren, liefert aber nicht das gewünschte Ergebnis.Grüße
rubberman