Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x64 key generation? #12

Open
pottzman opened this issue Jun 3, 2023 · 13 comments
Open

x64 key generation? #12

pottzman opened this issue Jun 3, 2023 · 13 comments

Comments

@pottzman
Copy link

pottzman commented Jun 3, 2023

What is wrong with x64 key generation? I have no issues with x64.

@Endermanch
Copy link
Owner

Hello pottzman! We're working in a team with Neo and Coni now. We've figured out that the private keys I've reversed are in fact correct, the only problem with them is that they aren't VLK. They're used to generate Retail and OEM keys and neither of them work with the image I'm testing it on. Note that I extracted the pidgen from that exact volume image.

I find it extremely weird, and for now this is the main issue with x64 key generation.

@pottzman
Copy link
Author

pottzman commented Jun 3, 2023

If the pidgen cane from a VLK image of windows then it shouldn't have BINK resources for Retail or OEM in it.

@CONIGUERO
Copy link

If the pidgen cane from a VLK image of windows then it shouldn't have BINK resources for Retail or OEM in it.

The problem is that the VLK builds seem to have 2 BINKs in their pidgen DLLs.

We also know the second BINK resource is hardcoded to be OEM

We're stuck trying to figure out what this mysterious second VLK bink might be.

@pottzman
Copy link
Author

pottzman commented Jun 4, 2023

For VLK builds I don’t think the second BINK is used for anything.

@WitherOrNot
Copy link

According to dpcdll.dll, the second bink (id 0x65) isn't used for anything relevant. You can confirm this with DPCDLL-Viewer, the only entries matching BINKs in pidgen are those for BINK 0x64.

For reference, I tested with en_win_xp_pro_x64_vl.iso

@CONIGUERO
Copy link

Got it. Glad to have that out of the way.

As for x64, everything after server 2003 uses a new signature algorithm. We have yet to figure out entirely and implement it. We do have the keys.

@WitherOrNot
Copy link

WitherOrNot commented Jun 4, 2023

I implemented an algorithm that generated a working key.

Please try with en_win_xp_pro_x64_vl.iso: R7KWY-RBF3F-R6C8P-RBK36-26YRY

Have not tested confirmation ID yet. Am dumb, I forgot VLK doesn't do conf IDs

@WitherOrNot
Copy link

WitherOrNot commented Jun 4, 2023

R7KWY-RBF3F-R6C8P-RBK36-26YRY

image

I will test with en_windows_xp_professional_x64.iso and share results.

@CONIGUERO
Copy link

R7KWY-RBF3F-R6C8P-RBK36-26YRY

image

I will test with en_windows_xp_professional_x64.iso and share results.

Confirmed working and the PID shown on system properties is the same!

@WitherOrNot
Copy link

x64 Retail: FDP9B-YDR92-PXP7H-9FY2Q-YFKJ6

image

@CONIGUERO
Copy link

x64 Retail: FDP9B-YDR92-PXP7H-9FY2Q-YFKJ6

image

Delightful! Can you aubmit a PR with the changes?

@WitherOrNot
Copy link

WitherOrNot commented Jun 4, 2023

I had a look at the code. It seems there is no change in algo from server 2k3, just different os_family constants, keys, and curve params.

# x64 VLK - 652
# x64 Retail - 306

I will see if I can implement something for this tomorrow. In the meantime, it would be good if DPCDLL.DLL was used to create a table of these constants, as that file is where I found them. I proposed this in UMSKT/UMSKT#15.

@Neo-Desktop
Copy link

Neo-Desktop commented Jun 4, 2023

@WitherOrNot I think going forward I'll add something similar to that structure you proposed to keys.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants