Windows Product Key auslesen



  • Hallo,

    der Produkt Key steht in folgenden Registryschlüssel:

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProductId

    und zwar in den Bytes 52 bis 66.

    Allerdings ist er codiert und zwar mit Base24.
    Ich weiß leider nicht wie man diesen Code encodet.

    Base24 scheint so wie Base64 zu funktionieren, wird bei EMails verwendet.

    Wenn jemand weis wie es funzt sollte er es hier melden.

    Gruß Anlen



  • anlen schrieb:

    Hallo,

    der Produkt Key steht in folgenden Registryschlüssel:

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProductId

    und zwar in den Bytes 52 bis 66.

    Wenn jemand weis wie es funzt sollte er es hier melden.

    Das ist (nur) die Product ID. Du meinst wohl HKLM\SOFTWARE\MICROSOFT\Windows NT\Current Version\DigitalProductId. An der Umkodierung arbeite ich bereits, angetrieben vom Forscherdrang 😃



  • #include <iostream> 
    #include <windows.h>
    
    int main () {
    	//Zeichenvorrat Buchstaben,Ziffern ohne AEIOU01 (24)
    	UCHAR digits[] = {'B','C','D','F','G','H','J','K','M','P','Q','R','T','V','W','X','Y','2','3','4','6','7','8','9'};
    	PUCHAR strresult = new UCHAR[26];
    	PUCHAR buf = new UCHAR[200];
    
    	HKEY key = NULL;
    	DWORD datasize = 200;
    	DWORD dwRet = 0;
    
    	ZeroMemory((PVOID)strresult,26);
    
    	dwRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion",0,KEY_READ,&key);                       
    	dwRet = RegQueryValueEx(key,"DigitalProductID",NULL,NULL,(LPBYTE)buf,&datasize);
    
    	if (dwRet != ERROR_SUCCESS) {
    		return -1;
    	}
    
    	RegCloseKey(key);
    
    	for (int i=24;i>=0;i--) {
    		int x=0;
    
    		for (int j=14;j>=0;j--) {
    			x = (x<<8) + (buf+0x34)[j];
    			(buf+0x34)[j] = x / 24;
    			x = x % 24;
    		}
    		strresult[i]=digits[x];
    	}
    
    	std::cout << strresult;
    
    	std::cin.get();
        return 0; 
    }
    

    Habe es jetzt hinbekommen 😉



  • Könnte man ja auch eigentlich mal in die FAQ stellen, oder?



  • @firefox:

    hast du es hinbekommen oder planet-source-code.com???



  • Hy Leute, wie müsste ich diesen Queltext verändern, damit er mich vorher noch nach einer IP fragt? Also im klar Text ich möchte eine IP eingeben und dann soll er auf die registry der ip zugreifen und mir den Product key aussgeben. Das ich auf dem Rechner Administratorrechte besitze ist natürlich vorrausgesetzt und auch gegeben. Und funktioniert das ganze auch mit Office? Wenn ja wie? Ich hoffe ihr könnt mir weiter helfen.



  • Da gabs doch mal son ganz tolles HAcker-Tool, was einem alle Windows-Schlüssel in einem Netzwerk auflistet, auch wenn man keine Adminrechte hat... zumindest ging das in einem Win2K-Netzwerk mit diesem Tool, unter WinXP hab ich das nicht getestet und ich hab das Tool nichtmehr, sonst würde ich wissen wie es heißt... kennt das einer? - Würd's ganz gerne wieder mal herunterladen... ist nämlich ganz witzig ^^



  • Das ist nicht nur witzig sondern sehr nützlich um einen guten Überblick über verwendete Lizenzen zu behalten. Genau so ein tool suche ich, es soll das netzwerk unter windows xp nach den Windows XP und Office (2000 und 2003 und XP) nach product keys durchsuchen und zusammen mit dem Rechnernamen auflisten. Ich hoffe ihr kennt da was und könnt mir da weiter helfen.

    Edit:

    Eigentlich meine ich von der Sache her dieses Teil: RockXP3
    Download: http://www.korben.tk/
    Allerdings halt nur das es netzwerk fähig ist, weil ich keine Lust habe zu jedem Rechner einzeln hinzulaufen.



  • Muh-Kuh schrieb:

    @firefox:

    hast du es hinbekommen oder planet-source-code.com???

    Ja, ich :p

    Hinweise auf den verwendeten Zeichenvorrat hatte ich durch googlen gefunden.



  • Hast Du auch eine Lösung für C# parat? Mit C++ kenn ich mich ned so aus.



  • DaFreez schrieb:

    Hast Du auch eine Lösung für C# parat? Mit C++ kenn ich mich ned so aus.

    ,

    sorry, ich meinte @masterofx32 damit. Ich suche einen Base24 Decoder für (in) C#.

    Danke nochmal



  • Na unter C# sähe das natürlich auch nicht stark anders aus. Dort hat man unter Anderem aber noch die Möglichkeit, den Registrierungsschlüssel von Remoterechnern abzufragen ohne sich mit WMI rumzuschlagen.

    private char[] digits = {'B','C','D','F','G','H','J','K','M','P','Q','R','T','V','W','X','Y','2','3','4','6','7','8','9'};
    
    public string QueryRemoteKey(string remotehost) {
        try {
    
            RegistryKey key = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine,remotehost);
            RegistryKey subkey = key.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion");
    
            byte[] data = (byte[])subkey.GetValue("DigitalProductID");
            string result = "";
    
            for (int i=24;i>=0;i--) {
                int x=0;
    
                for (int j=14;j>=0;j--) {	
                    x = (x<<8) + data[0x34+j];
                    data[0x34+j] =(byte)(x/24);
                    x = x%24;
                }
    
                result = result.Insert(0,digits[x].ToString());
    
                if ( ((i%5)==0) && (i!=0) ) {
                    result = result.Insert(0,('-').ToString());
                }
            }
    
            return result;
    
        } catch(Exception ex) {
            System.Windows.Forms.MessageBox.Show(ex.Message);
        }
    
        return String.Empty;
    }
    

    EDIT: digits vergessen



  • Hallo zusammen, leider bin ich nirgends fündig geworden, also dacht ich frag ich mal hier...gibt's diesen/einen ähnlichen Eintrag in der Registry für alle Windoof Versionen..und..Was dann noch viel wichtiger ist, ist der Key dann auch genau so codiert? 😕

    Grüße Chris



  • Hallo????

    Also, entweder hat hier keiner verstanden was ich wissen möchte oder meine Frage ist die Antwort nicht Wert...! :o/ In beiden Fällen, bitte eine kurze Reaktion!
    Irgendwie kann ich nämlich nicht recht glauben, dass es hier im Forum nur XP user gibt. Kann bitte mal ein Win9x user in seine Registry gucken, ob der Key da genauso exsistiert? Bidde!!!
    Ich will doch nix böses damit machen...will für's eigene Proggi einen Lizensgenerator bauen und mich an die Win-Lizens dranhängen! Natürlich wird die vorher bis zur unkenntlichkeit verstümmelt und mit anderen Systemspezzifieschen Werten verwurschtelt, so dass ein Rückschluss selbst im Lizens Generator völlig ausgeschlossen ist!

    Gruß Chris



  • 95A ➡ HKLM\Software\Microsoft\Windows\CurrentVersion\ProductId
    98SE ➡ HKLM\Software\Microsoft\Windows\CurrentVersion\ProductKey

    Beide liegen dort im Klartext vor. Das Verfahren bei 2000 scheint wie bei XP zu funktionieren, das konnte ich aber nicht überprüfen.

    so dass ein Rückschluss selbst im Lizens Generator völlig ausgeschlossen ist!

    ➡ Lizenzgenerator



  • Haha hier lebt ja doch noch jemand!*freu*
    Die sind da im Klartext drin??? 😮
    Damals hatten die Microschufte wohl noch net soviel Angst...!
    Das war eigentlich schon alles was ich wissen wollte...aber das bedeutet wohl, dass ich mir doch noch was anderes einfallen lassen muss für die Win9x Version!

    Nochmals besten Dank!

    Chris


Anmelden zum Antworten