Skip to content
View in the app

A better way to browse. Learn more.

MSFN

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

How to Recover WinXP Product key with unbootable drive

Featured Replies

I am a computer tech who runs into systems that will not boot normally or into safe mode after a new mother board install and I need to re-install windows with the customers Product Key from the unbootable system. I have tried everything I can find on the net to extract the key with no avail. Can someone please tell me a method that will work.

Marc

Marc's Computer Repair

You have to hook the HDD to another PC as a secondary and Load the Hive containing the Key via a Primary Win2k/xp/2k3 Running System (using Regedt32).

The info as to how to interpret the info you Load is on the Internet (certain positions of a certain value of a certain length).

Be sure to Unload the Hive after you got the info. And be sure you got the Correct Key.

Odd that you should ask that. Usually (AFAIK, except in OEM SLP) you can just reactivate, and the OS is bootable. In the other case (OEM SLP) where the OS is "locked" to motherboard, you have to "dance with the OEM" to put in a new MoBo (sometimes a search will help on the OEM site).

In addition, wouldn't you have to reinstall the exact same OS and SP-level? Have you tested "cloning" one of these HDD's and testing the affixed Key (on the COA) of the PC in question (if OEM and if it's still there)?

(Perhaps I'm misunderstanding. Why wouldn't it boot at all just because of a new MoBo). OHHHH! - the New MoBo is Entirely Different as opposed to the Old; Chipset Problem. Via-to-Intel bites you on that...

Ennyhoo, hope the above helped. Can't/won't point you to the WWW info I referenced - you'll have to find that yourself.

Hint -

HKLM/Software/Microsoft/Windows NT/CurrentVersion->DigitalProductID (value)

Edited by submix8c

  • Author

Thank you for the help. I am familiar with the method you described as I've been trying it for two days. The location you mentioned in the hint would be great if I was looking for the key on the boot drive, but I'm looking for the key on the non-bootable drive. I've been told the file to use as the hive is C:\Documents and Settings\(User Name)\ntuser.dat but I cannot find where the DigitalProductID is in the newly created hive.

  • Author

Hey IcemanND, if the drive is external, say E:, what path do i use and what field do I enter it in? Is the registry all one file that i can search? What's it called? Sorry for the novice questions, just new to registry stuff.

It won't get it directly from the offline registry, but you can launch regedit, select the HKLM root key, go to file select load hive, select e:\windows\system32\config\software, enter PE for the key name.

then in keydecoder go to the settings menu, select the offline registry key name option, then enter PE and click decode.

  • Author

Awesome - Your the man, Iceman, thank you so much for taking the time to explain that as I have been very frustrated trying to figure it out. My lack of registry experience is now cut in half. :)

Edited by MCR7

Are we not allowed to show the code sequence for decrypting a key for XP/Vista?

Is this against the rules?

TY, IcemanND - you explained exactly what I explained, except specifically which Hive and gave a tool on MSFN.

The only tools I was aware of, I wasn't sure were to be mentioned and AFAIK only work on a Running machine (exception - one that you "enter certain positions, yadayada" as above after Loading/Unloading Hive).

For those who are curious, reverse base24 decode bytes 52 to 66 of the DigitalProductID gives yout your cd-key
(a tool exists to do that only)
You have to hook the HDD to another PC as a secondary and Load the Hive containing the Key via a Primary Win2k/xp/2k3 Running System (using Regedt32).

Be sure to Unload the Hive after you got the info. And be sure you got the Correct Key.

Was under the impression that Marc was a technician AND knew about the Hives. My bad...

Edited by submix8c

  • Author

Hey submix8, you were right about one thing, I am a technician. 50%'s not bad. :P:) :)

BTW - I like your JusTus pic, reminds me of my old SnarkUS alias

Edited by MCR7

Here is a Borland C Code Example:

I did not write the algorithm but translated the seq from

The Microsoft Knowledge Base articles for Borland/Codegear

//---------------------------------------------------------------------------

String __fastcall TfrmMain::GetCDKey(void) {
byte bKeyChars[] = { 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R', 'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9' };

String sCDKey = "";
int Stat;

byte bDigitalProductID[200];
byte bProductKey[14];

TRegistry *Registry = new TRegistry(KEY_READ);
// int KEY_WOW64_64KEY = l256;

try {
if(!bWin2k) Registry->Access = 0x100 | KEY_READ;

Registry->RootKey = HKEY_LOCAL_MACHINE;
String KeyPath = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
String KeyName = "DigitalProductId";
int KeySize = 164;

if(Registry->OpenKeyReadOnly(KeyPath)) {
Stat = Registry->ReadBinaryData(KeyName, bDigitalProductID, KeySize);
if(Stat == KeySize) {
for(int x = 52; x < 67; x++) bProductKey[x - 52] = bDigitalProductID[x];
for(int ilByte = 24; ilByte > -1; ilByte--) {
int nCur = 0;
for(int ilKeyByte = 14; ilKeyByte > -1; ilKeyByte--) {
nCur = nCur * 256 ^ bProductKey[ilKeyByte];
bProductKey[ilKeyByte] = int(nCur / 24);
nCur = div(nCur, 24).rem;
}
String K = char(bKeyChars[nCur]);
sCDKey = K + sCDKey;
if(ilByte != 0) if(div(ilByte, 5).rem == 0) sCDKey = "-" + sCDKey;
}
}
else { sCDKey = "No DigitalProductId: " + String(Stat); }
}
else { sCDKey = "No Registry Access: " + String(Stat); }
}
__finally
{
delete Registry;
}

return(sCDKey);
}

//---------------------------------------------------------------------------

Edited by Arrow22

Please sign in to comment

You will be able to leave a comment after signing in

Sign In Now

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.