GithubHelp home page GithubHelp logo

umskt's Introduction

Universal MS Key Toolkit (UMSKT)

Connect with us

Zulip chat libera.chat - #mspid Discord

Build status

C/C++ CI (Windows)

C/C++ CI (macOS)

C/C++ CI (Linux)

C/C++ CI (FreeBSD)

C/C++ CI (DOS DJGPP)


Plan of Action / ToDo List

In light of the recent exponential interest in this project I've decided to put updates of this project here:

Please see ticket #8 for more information


FAQ

What does it do?

  • This program is a tool for researching and experimenting with retro Microsoft product licensing, for products released before 2012.

How does it work?

How do I use it?

  • It all comes down to four simple steps:

Usage

1. Download the latest version of UMSKT

  • (GitHub account required)

  • (GitHub account *not* required)

    • Download the latest release for your operating system and architecture from the releases page
    • No official releases right now, use the other method to get the latest version.
  • Note: Before continuing, please ensure you have the umskt executable extracted and on UNIX-like systems, have execution permissions (chmod +x umskt).

2. Install OpenSSL 3.1.2.

For Windows, click here and choose the right version. For other operating systems, consult your package manager. Note: This only applies if the build you download has OpenSSL embedded (static library) or not. You can usually tell if the download size is measured in KB or MB. If it's MB, you don't need this.

3. Run umskt to generate a key, or add --help or -h to see more options.

4. (Activation step for Retail and OEM only)

  • After installation, you will be prompted to activate Windows.

  • Select the telephone activation method, then, run umskt -i <Installation ID> using the Installation ID the activation Wizard provides for you

    • If you're activating a non-Windows product, use umskt -i <Installation ID> -m <Product>, where <Product> is one of OFFICEXP, OFFICE2K3, OFFICE2K7, or PLUSDME
    • If activating Office 2003/2007, use umskt -i <Installation ID> -m <Product> -p <Product ID>

4. Profit!


Authors

The list of people who have helped to bring the XP generation to where it is now:

  • z22
  • MSKey
  • diamondggg
  • pottzman
  • david4599
  • Endermanch
  • Neo-Desktop
  • WitherOrNot
  • TheTank20
  • InvoxiPlayGames
  • brakmic
  • techguy16

(the list will be updated to add more collaborators)


Development Requirements:

  • build-essential
    • cmake
    • make
    • gcc
    • g++
  • git

Build Steps:

  1. git clone https://github.com/UMSKT/UMSKT
  2. cd UMSKT/build
  3. cmake ..
  4. make

Known Ports

Language Author Repo URL
Rust Alex Page anpage/umskt-rs
Python techguy16 techguy16/umsktpy

umskt's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

umskt's Issues

C or C++ and coding style

It seems to me that the code, despite with extension .cpp, is in fact in C. For example,

#include <stdio.h>

is deprecated in C++. The only exception is that, in C, the "correct" prototype of a function without parameter is, say, int main(void). The prototype (void) instead of () is introduced in C for historic reasons.

It might also be better to improve the code according to latest standards. For example, the return type in https://github.com/Neo-Desktop/WindowsXPKg/blob/ac47a88f7e253fc86a06b1250f62d6938bd3ccb9/server_algorithm.cpp#L91 seems to be better to be bool (with stdbool.h included in C99). It might also be better to define variables i,j,k in the for-loop https://github.com/Neo-Desktop/WindowsXPKg/blob/ac47a88f7e253fc86a06b1250f62d6938bd3ccb9/server_algorithm.cpp#L98 instead (C99 and later).

XP home edition key generation

Hello,

i have my first Windows XP Home edition Service Pack 2 CD in german language. I have tryed to install it with a generated key, but setup does'nt accept.
I have read in the issue #4 that the pid 640, volume license generation is used in default.
Can you list the possible pid's and for wich windows XP editions they are?
How can i seh, wich license is used, the name of the cd drive is, when i insert the cd is: VX2HOEM_DE
Please help me.

Regards
arminmoradi96

A Little Bit of History / Knowledge Base

The original of this keygen was uploaded to PlanetWPA as part of MSKey 4-in-1 algorithm sources back in early 2000s and was made by z22. The original of the Confirmation ID generator seems to be uploaded by diamondggg on MDL.

Shoutout to the tinyapps.org maintainer; you're a champ and deserve better recognition. Journalistic integrity at its finest. ๐Ÿ˜‰

Original sources
PlanetWPA: https://antiwpa.planet-dl.org/index2.php (originally antiwpa11.tk)
AntiWPA Forum: https://board.deioncube.in/

Here are the original files, uploaded in 2011 (the idea is very likely not original, they might be based on the disassembly of the MSKey 4-in-1, which was created way back in 2003-2005, hence I'm making the "early 2000s" claim)
https://antiwpa.planet-dl.org/Other/tmp/xpkey-0.03.cpp.txt
https://antiwpa.planet-dl.org/Other/tmp/win2k3key.c.txt

In case you want to download any files from PlanetWPA and check for yourself
Username: planet-dl.org
Password: planet-dl.org

Around a month ago I rewrote this keygen to yield correct results consistently (e.g. the 0x62A32 constant for XP generation is completely wrong, must be 0x40000 - the low 18 bit check, I don't know where they got it from, there's no BN_sqrt_mod() check in the Server 2003 algorithm) and made a native Win32 UI for it.

You can check the code in my repository and fix yours accordingly.
https://github.com/Endermanch/XPKeygen

I also managed to get Windows 98 generation working by reversing the private key for its BINK.

By the way, I suggest conjoining forces, so we can make this research go much quicker and more effective.
Feel free to take any code from my repository to fix yours. We also have a central issue as a forum and there was a lot of knowledge shared.
Endermanch/XPKeygen#3

Cheers!

Stuff I'm working on for this project

Hi UMSKT team,
I am working on a few things for this project, which you may be interested in:

  • macOS and FreeBSD support (see here)
  • Python bridge to UMSKT
  • A website for UMSKT

Comment if you are interested.

Add Dockerfile for easy compilation

Hi,

Here's a Dockerfile I'm using to compile and run xpkey. It runs Alpine Linux.

# Stage 1: Builder
FROM alpine:3.18 as builder

# Install build dependencies
RUN apk add --no-cache \
  bash \
  build-base \
  git \
  cmake \
  openssl1.1-compat \
  openssl1.1-compat-dev \
  openssl1.1-compat-libs-static

WORKDIR /src

# Clone xpkey repository and build it
RUN git clone https://github.com/UMSKT/UMSKT.git . \
  && cd ./build \
  && cmake .. \
  && make

# Stage 2: Runner
FROM alpine:3.18 as runner

ENV HOME /root

# Copy xpkey binary & keys.json from builder
COPY --from=builder /src/build/xpkey /root/xpkey
COPY --from=builder /src/keys.json /root/keys.json

# Install bash
RUN apk add --no-cache bash

CMD ["bash"]

Screenshot 2023-06-17 at 22 05 54

Maybe it could be of some help to others.

Many thanks to those who coded this fine piece of software.

current git can not build in linux

Hi i wand to report the current git build (f5423a8) can not build on linux.

$~/switch/WindowsXPKg/build$ cmake ..
CMake Deprecation Warning at CMakeLists.txt:1 (CMAKE_MINIMUM_REQUIRED):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") 
-- Checking for one of the modules 'openssl'
-- Configuring done (0.5s)
-- Generating done (0.0s)
-- Build files have been written to: /home/user-name/switch/WindowsXPKg/build
$~/switch/WindowsXPKg/build$ make
[ 16%] Building CXX object CMakeFiles/xpkey.dir/xp_algorithm.cpp.o
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp: In function โ€˜bool verifyXPKey(EC_GROUP*, EC_POINT*, EC_POINT*, char*)โ€™:
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:104:14: warning: โ€˜int SHA1_Init(SHA_CTX*)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  104 |     SHA1_Init(&hContext);
      |     ~~~~~~~~~^~~~~~~~~~~
In file included from /home/user-name/switch/WindowsXPKg/header.h:20,
                 from /home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:18:
/usr/include/openssl/sha.h:49:27: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 int SHA1_Init(SHA_CTX *c);
      |                           ^~~~~~~~~
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:113:16: warning: โ€˜int SHA1_Update(SHA_CTX*, const void*, size_t)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  113 |     SHA1_Update(&hContext, t, sizeof(t));
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/sha.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~~
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:121:16: warning: โ€˜int SHA1_Update(SHA_CTX*, const void*, size_t)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  121 |     SHA1_Update(&hContext, buf, FIELD_BYTES);
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/sha.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~~
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:129:16: warning: โ€˜int SHA1_Update(SHA_CTX*, const void*, size_t)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  129 |     SHA1_Update(&hContext, buf, FIELD_BYTES);
      |     ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/sha.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~~
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:132:15: warning: โ€˜int SHA1_Final(unsigned char*, SHA_CTX*)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  132 |     SHA1_Final(md, &hContext);
      |     ~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/openssl/sha.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int SHA1_Final(unsigned char *md, SHA_CTX *c);
      |                           ^~~~~~~~~~
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp: In function โ€˜void generateXPKey(char*, EC_GROUP*, EC_POINT*, BIGNUM*, BIGNUM*, ul32*)โ€™:
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:182:18: warning: โ€˜int SHA1_Init(SHA_CTX*)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  182 |         SHA1_Init(&hContext);
      |         ~~~~~~~~~^~~~~~~~~~~
/usr/include/openssl/sha.h:49:27: note: declared here
   49 | OSSL_DEPRECATEDIN_3_0 int SHA1_Init(SHA_CTX *c);
      |                           ^~~~~~~~~
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:191:20: warning: โ€˜int SHA1_Update(SHA_CTX*, const void*, size_t)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  191 |         SHA1_Update(&hContext, t, sizeof(t));
      |         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/sha.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~~
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:199:20: warning: โ€˜int SHA1_Update(SHA_CTX*, const void*, size_t)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  199 |         SHA1_Update(&hContext, buf, FIELD_BYTES);
      |         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/sha.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~~
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:207:20: warning: โ€˜int SHA1_Update(SHA_CTX*, const void*, size_t)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  207 |         SHA1_Update(&hContext, buf, FIELD_BYTES);
      |         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/sha.h:50:27: note: declared here
   50 | OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
      |                           ^~~~~~~~~~~
/home/user-name/switch/WindowsXPKg/xp_algorithm.cpp:210:19: warning: โ€˜int SHA1_Final(unsigned char*, SHA_CTX*)โ€™ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  210 |         SHA1_Final(md, &hContext);
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~
/usr/include/openssl/sha.h:51:27: note: declared here
   51 | OSSL_DEPRECATEDIN_3_0 int SHA1_Final(unsigned char *md, SHA_CTX *c);
      |                           ^~~~~~~~~~
[ 33%] Building CXX object CMakeFiles/xpkey.dir/key.cpp.o
[ 50%] Linking CXX executable xpkey
/usr/bin/ld: CMakeFiles/xpkey.dir/key.cpp.o: warning: relocation against 'charset' in read-only section '.text'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/Scrt1.o: in function '_start':
(.text+0x1b): undefined reference to 'main'
/usr/bin/ld: CMakeFiles/xpkey.dir/xp_algorithm.cpp.o: in function 'verifyXPKey(ec_group_st*, ec_point_st*, ec_point_st*, char*)':
xp_algorithm.cpp:(.text+0x1e7): undefined reference to 'unbase24(unsigned long*, char*)'
/usr/bin/ld: xp_algorithm.cpp:(.text+0x244): undefined reference to 'endian(unsigned char*, int)'
/usr/bin/ld: xp_algorithm.cpp:(.text+0x411): undefined reference to 'endian(unsigned char*, int)'
/usr/bin/ld: xp_algorithm.cpp:(.text+0x469): undefined reference to 'endian(unsigned char*, int)'
/usr/bin/ld: CMakeFiles/xpkey.dir/xp_algorithm.cpp.o: in function 'generateXPKey(char*, ec_group_st*, ec_point_st*, bignum_st*, bignum_st*, unsigned long*)':
xp_algorithm.cpp:(.text+0x7cc): undefined reference to 'endian(unsigned char*, int)'
/usr/bin/ld: xp_algorithm.cpp:(.text+0x824): undefined reference to 'endian(unsigned char*, int)'
/usr/bin/ld: CMakeFiles/xpkey.dir/xp_algorithm.cpp.o:xp_algorithm.cpp:(.text+0x948): more undefined references to 'endian(unsigned char*, int)' follow
/usr/bin/ld: CMakeFiles/xpkey.dir/key.cpp.o: in function 'unbase24(unsigned long*, char const*)':
key.cpp:(.text+0x9e): undefined reference to 'charset'
/usr/bin/ld: key.cpp:(.text+0x18e): undefined reference to 'endian(unsigned char*, int)'
/usr/bin/ld: CMakeFiles/xpkey.dir/key.cpp.o: in function 'base24(char*, unsigned long*)':
key.cpp:(.text+0x20f): undefined reference to 'endian(unsigned char*, int)'
/usr/bin/ld: key.cpp:(.text+0x262): undefined reference to 'charset'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/xpkey.dir/build.make:113: xpkey] Fout 1
make[1]: *** [CMakeFiles/Makefile2:85: CMakeFiles/xpkey.dir/all] Fout 2
make: *** [Makefile:91: all] Fout 2
$~/switch

Check for the keys file in the same directory as xpkey

Suggesting a small usability feature: If -f <keysfile> is not specified and keys.json is not in the shell's current directory, it should instead check for keys.json in the directory where the xpkey executable is kept.

Build steps for windows

Hello together
Can the tool only be created under linux??

I installed

  • cmake-3.27.1-windows-x86_64.msi
  • make-3.81.exe
  • win32openssl-3_0_10.exe
  • Visual Studio 2019

My build steps:

  • cd build
  • cmake ..
  • make

But the last step failed with:
makefile:34: *** missing separator. Schluss.

Line 34 in the generated makefile is:
32: !IF "$(OS)" == "Windows_NT"
33: NULL=
34: !ELSE
35: NULL=nul
36: !ENDIF

Can someone help me?

Thanks

PS: Much easier would be to provide a binary to download here. ;)

XP pro SP2 Key generation

in issue #86 you have sugested me, that i should try the folowing command:

umskt -b 2C -c 335
or
umskt -b 2D -c 335
I have tryed both commands for XP pro SP2, 2C was the key correct, but, the activation window opens and when i press alt+F4, it logs me off.
Do you have an sugestion?

Regards
Armin

ECDLP Signing Key Generation

How would one go about porting this to another product that uses the same key system? I'm not sure how I would start there.
It's used by the 2003 Gearbox PC port of Halo, and it would be useful to generate keys the master server accepts as valid.

Create Office2003 Confirmation ID

I'm tying to generate an Office2003Professional confirmation ID (activation). I'm using the following parameters:
-b 72 -i 086680-618254-417674-185413-128320-279945-620426-138745-737550
The output is XDM3R-FJ282-VP4PC-MTC46-Q94DY, but this is not the required confirmationID which has to be digits only and 7 blocks of digits.
What's wrong?

Retail Confimation ID

The link in the description to the activation service is down.. is there a open source version of it?

Bink ID's 09 and 0B are duplicates

    "09": {
      "a": "1",
      "b": "0",
      "g": {
        "x": "17272533675023793624680016937607161394427776688401278127884215858369066406365237833207419170117031265147050748737186",
        "y": "10897684556651576571671151674586120690608236542740270859915076272932083320838022698730208293779451126638581586588925"
      },
      "n": "44682719955829289",
      "p": "31123778862031392435299439090755153401162704597024288571183830527113563344679315725116915983118187065183839828632113",
      "priv": "30177475288172038",
      "pub": {
        "x": "10584120526089473026246191383792758367144927589909587205278073830223938861208553884400816982485323081066790399437204",
        "y": "19710761542152200618172612283139324015316083022563473705358032993141026289202915973780473937312193485361804450068338"
      }
    },
    "0B": {
      "a": "1",
      "b": "0",
      "g": {
        "x": "17272533675023793624680016937607161394427776688401278127884215858369066406365237833207419170117031265147050748737186",
        "y": "10897684556651576571671151674586120690608236542740270859915076272932083320838022698730208293779451126638581586588925"
      },
      "n": "44682719955829289",
      "p": "31123778862031392435299439090755153401162704597024288571183830527113563344679315725116915983118187065183839828632113",
      "priv": "30177475288172038",
      "pub": {
        "x": "10584120526089473026246191383792758367144927589909587205278073830223938861208553884400816982485323081066790399437204",
        "y": "19710761542152200618172612283139324015316083022563473705358032993141026289202915973780473937312193485361804450068338"
      }
    }

This results in 0B keys being seen as 09 keys, and products that use the 0B BINK (if there is one) not supporting those keys.

Proposal for alternate crypto backends, e.g. libsodium or libnettle?

I know this might be a huge amount of work depending on how much of the OpenSSL library the program currently uses, and arguably not worth it for such a niche piece of software, but it would certainly be nice to have options at least. Libsodium in particular might also be good for making static builds smaller, once those are working again.

Simple 4 steps, not so simple.

I have no idea what I'm doing wrong, but when I try to follow the README steps, I'm having zero luck with this.

The issue is with the "download" step which takes you to the Actions tab. I've looked all over this page; however, all I see are the Action steps history from apparently other executions of this action; however, I can find no way to actually trigger this action. Googling seems to indicate there should be a button to run it, but no such button exists.

I have a Github account and am logged in.

Can someone clarify what should happen on this screen or perhaps provide some additional guidance?

Office 2007 Enterprise Support [user error]

MS office 2k7 enterprise requires activation accepting digits only. Generation as per docs provides alphanumeric response

$ umskt -m OFFICE2K7 -p 89388-864-3870334-65364
CTTJF-WT4WX-MY8RP-CFPQJ-PKG9G

Microsoft ID's List.

Here is some of the ID's I discovered. using the ultimate PID Checker and mskt.surge.io
I am trying to make it easier for people to find these.
Windows XP x86 idk any for x64:
005-085 RETAIL Working.
640-647 alternatively 640-699 VLK seems to be working.
Halo PC/CE:
035-039 Working.
Office 2007 Standard / Professional / Ultimate / Enterprise:
864 Working.
Office 2007 Home & Student:
905 possibly working but I haven't tested.
Office 2007 Basic / Small Business:
Basic - 729 Possibly working but I haven't tested.
Basic - 301 Possibly working but I haven't tested.
Office 2003 Professional:
746 Possibly working but I haven't tested.
VLK - 640 Possibly working but I haven't tested.
Office 2003 Small Business:
761 Possibly working but I haven't tested.

Below will be a list of ID's for Windows XP Provided by Endermanch.
Endermanch's Image.
If you guys have any more ID lists please post them so I can improve this list.
If you guys can test the ones I marked as untested please let me know the results.
Here's a full list of known ID's
Spreadsheet

Canโ€™t downloads the artifacts

hi ^^

i wanted to download the macOS version but the last successful compilation was 3 monts ago and thus the artifact expired so we are not able to download it :/ (other targets have that issue too)

can you do something about it ? thank you

Plan of Action / ToDo List

In light of the recent exponential interest in this project @Endermanch and I have been working closely to help determine the best plan of action going forward.

My intention for this repository is to be a bit of a shared code base (if not eventually a shared library) that will do a significant part of the "heavy-lifting" for generating keys.

The components of which will be as followed:

  • Accurate PID generation based on product family (see: #15 )
  • ECDLP Signing from extracted and calculated keys [1] (see: #2 )
  • A (somewhat) standardized method for storing the above values (keys.json)
  • Transition to using CMake

An additional project related to this is the Telephone Activation utility which will ultimately be included in this repository: (See #1 )

  • A port of the Telephone Activation utility to the command line (eventually as a library) for platform agnostic use - thanks @WitherOrNot ! #14
  • An extension of the above utility to handle the various products (typically in the retail branch) that require activation
    • Develop a method to pragmatically extract constants from the products that require activation (see: #17 )
  • A ground up rework of the existing confid.cpp

  • CLI Refactor to use a new style keys.json file
  • Have compile-time options to generate a shared or static library for the project
    • One export for all of UMSKT called libumskt / umskt.dll
  • Docker-based environment for easy static and cross compiled builds (see: #29 - thanks @brakmic! )
  • Full releases (meaning one that includes a resource compiled keys.json)
  • Research possibility of compiling with DJGPP (and even automating builds via GitHub actions)
  • Add Windows 32bit compilation
  • Add DOS DPMI compilation
  • Research possibility of emscripten builds
  • Transition from OpenSSL to Crypto++
  • Improve documentation of activation mechanisms

One of my personal requirements for this code is to take a Linux first approach, we start small and work our way up, if platform specific needs arise, we will handle them one at a time.

Thank you for your patience with us as we sort though everything and compare notes on our projects, we'll get things going shortly, the warm and positive repose from the community is all very overwhelming.


Update: 2023/06/11

In doing research to the extent of which products use PIDGEN/DPCDLL/LICDLL (and derivatives) I think its a wise decision to use some type of database to manage all this information.

I've started using an sqlite 3 db and intend to write a script that generate a keys.json file from it in the near future.

A SQL file (db dump) that can populate the database will be provided in the repo


[1] NB: One of my personal gripes with how we're handling keys is that private keys must be recalculated from the inverse (-Ky) of the public key or it is currently unusable to us. And while with modern machines this is more or less trivial to do, it doesn't feel right to me. There is a better way that is currently used by another keygen called mskey4in1 and I find it imperative that I replicate whatever algorithm the programmer there used first.

Edit: 2023/05/31 - figured it out! progress!

The problem (and main blocker) here is that collectively those currently involved with this project are somewhat novices at Elliptic Cryptography, both your patience is requested and anyone with hints/tips/tricks that may be of assistance is more than welcome to get in touch with us.

Product Activation Constants

TODO:

  • Identify the modules used in activation for various products
  • Use a RE tool to find the constants in question (perhaps use the XP constants as a template)
    • Find a way to extract the VSP encrypted/obfuscated parts of the licensing DLLs (wpa, mpa) any help/knowledge here is huge
  • Develop a method (python/sagemath/or just by hand) to extract and document those constants
    • This appears to be a more individual process (per product) and may have to be done by hand
  • Save the constants to a new object in keys.json

Cannot find OpenSSL

After following install instructions, the following happens:
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) Call Stack (most recent call first): /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake-3.22/Modules/FindOpenSSL.cmake:574 (find_package_handle_standard_args) CMakeLists.txt:7 (FIND_PACKAGE)
OpenSSL is installed & so are all other dependencies, I think. I'm compiling this in the home folder if that matters any. Maybe this is related to #12 ?

Office 2007 Enterprise activation not working (no output)

I'm trying to activate Office 2007 Enterprise (DE) on Windows Vista Ultimate using the key FQT9W-2Y8M2-X9W9D-3FJ29-HJ8VM (generated by UMSKT as well). When issuing the following command:

umskt.exe -c 864 -p OFFICE2K7 -f PRO -i 065795-710280-096543-513302-537511-539171-299093-205161-559725 -P 81599-864-7510697-65628

I get no output. When adding a -v, the output is as follows:

Enabling verbose option

Loading internal keys file
Loaded internal keys file successfully

Selecting product: OFFICE2K7
Selecting flavour: PRO

--------------------------------------------------------------------------------

Loaded the following hyperelliptic curve parameters: activation[OFFICE]
--------------------------------------------------------------------------------

   name: Office XP/2003/2007
version: 4
     Fp: 103099955908255721
    F[]: [0, 64728167274549202, 4488766805843809,
          70698430483539942, 64728167274549202, 1]
    INV: 14515793565989355059134123881456714
   mqnr: 3
      k: 10294349293510589382098112327865153
    IID: 1513142771

The confirmation ID is correct (I triple-checked) and the product ID is also correct (I copied it out of the registry). The channel ID is taken from another, known working product key (but activation for that key failed with the same symptoms as described here).

List of discontinued Windows Versions with activation

I'll update this list occasionally. There are even older versions of Windows that did have product keys but did not require activation. The activation tool could support them.

Windows XP Home Edition and Professional
Windows XP Professional x64 Edition
Windows Vista Home Basic, Home Premium, Professional and Ultimate
Windows 7 Home Basic, Home Premium, Professional and Ultimate
Windows 8.1 "Basic" and Pro

Windows Server 2003 Standard, Enterprise and Datacenter 32-bit
Windows Server 2003 Standard, Enterprise and Datacenter x64 editions
Windows Server 2008 Standard, Enterprise and Datacenter - 32-bit and 64-bit
Windows Server 2008 R2 Standard, Enterprise and Datacenter
Windows Server 2012 Standard and Datacenter
Windows Server 2012 R2 Standard and Datacenter

Plus! Digital Media Edition not supported

Hello,
Microsoft Plus! Digital Media Edition is the only Plus! pack requiring activation. Activation servers are obviously dead, but it supports phone activation.
Installation ID of it is not supported by UMSKT.
Looks like a little different format.

I know it is pretty exotic piece of MS software, but analyzing would bring more interesting information to Registration ID generation.

Would it be possible to add support for it?

Compile fails on Raspberry Pi

[100%] Linking CXX executable xpkey
/usr/bin/ld: CMakeFiles/xpkey.dir/src/cli.cpp.o: in function `std::filesystem::exists(std::filesystem::__cxx11::path const&)':
cli.cpp:(.text._ZNSt10filesystem6existsERKNS_7__cxx114pathE[_ZNSt10filesystem6existsERKNS_7__cxx114pathE]+0x1c): undefined reference to `std::filesystem::status(std::filesystem::__cxx11::path const&)'
/usr/bin/ld: CMakeFiles/xpkey.dir/src/cli.cpp.o: in function `std::filesystem::__cxx11::path::path<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::filesystem::__cxx11::path>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::filesystem::__cxx11::path::format)':
cli.cpp:(.text._ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE[_ZNSt10filesystem7__cxx114pathC5INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE]+0x60): undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/xpkey.dir/build.make:176: xpkey] Error 1
make[1]: *** [CMakeFiles/Makefile2:115: CMakeFiles/xpkey.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

[xpkey] Segmentation fault

Not sure if this is related to #22.

Compilation:

cd build/ && cmake ../ && make
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.a (found version "1.1.1f")  
-- Downloading CPM.cmake to /media/ext3-data/git/UMSKT/build/cmake/CPM_0.38.1.cmake
-- CPM: Adding package [email protected] (v3.11.2)
-- Using the multi-header code from /media/ext3-data/git/UMSKT/build/_deps/nlohmann_json-src/include/
-- CPM: Adding package [email protected] (7.1.3)
-- Version: 7.1.3
-- Build type: 
-- CXX_STANDARD: 17
-- Performing Test has_std_17_flag
-- Performing Test has_std_17_flag - Success
-- Performing Test has_std_1z_flag
-- Performing Test has_std_1z_flag - Success
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS
-- Performing Test SUPPORTS_USER_DEFINED_LITERALS - Success
-- Performing Test FMT_HAS_VARIANT
-- Performing Test FMT_HAS_VARIANT - Success
-- Required features: cxx_variadic_templates
-- Looking for strtod_l
-- Looking for strtod_l - not found
-- Configuring done
-- Generating done
-- Build files have been written to: /media/ext3-data/git/UMSKT/build
Scanning dependencies of target fmt
[  7%] Building CXX object _deps/fmt-build/CMakeFiles/fmt.dir/src/format.cc.o
[ 14%] Building CXX object _deps/fmt-build/CMakeFiles/fmt.dir/src/os.cc.o
[ 21%] Linking CXX static library libfmt.a
[ 21%] Built target fmt
Scanning dependencies of target BINK1998
[ 28%] Building CXX object CMakeFiles/BINK1998.dir/src/BINK1998.cpp.o
[ 35%] Linking CXX static library libBINK1998.a
[ 35%] Built target BINK1998
Scanning dependencies of target CONFID
[ 42%] Building CXX object CMakeFiles/CONFID.dir/src/confid.cpp.o
[ 50%] Linking CXX static library libCONFID.a
[ 50%] Built target CONFID
Scanning dependencies of target BINK2002
[ 57%] Building CXX object CMakeFiles/BINK2002.dir/src/BINK2002.cpp.o
[ 64%] Linking CXX static library libBINK2002.a
[ 64%] Built target BINK2002
Scanning dependencies of target xpkey
[ 71%] Building CXX object CMakeFiles/xpkey.dir/src/main.cpp.o
[ 78%] Building CXX object CMakeFiles/xpkey.dir/src/key.cpp.o
[ 85%] Building CXX object CMakeFiles/xpkey.dir/src/util.cpp.o
[ 92%] Building CXX object CMakeFiles/xpkey.dir/src/cli.cpp.o
[100%] Linking CXX executable xpkey
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libcrypto.a(dso_dlfcn.o): in function `dlfcn_globallookup':
(.text+0x17): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libcrypto.a(b_addr.o): in function `BIO_lookup_ex':
(.text+0xd02): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libcrypto.a(b_sock.o): in function `BIO_gethostbyname':
(.text+0x75): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
[100%] Built target xpkey

Running ./xpkey:

Segmentatiefout (geheugendump gemaakt)

CMakeError.log

From kern.log:

Jun 18 06:10:56 nico-desktop kernel: [ 3664.900106] xpkey[13100]: segfault at 0 ip 0000000000000000 sp 00007ffee0d5e818 error 14 in xpkey[400000+1000]
Jun 18 06:10:56 nico-desktop kernel: [ 3664.900115] Code: Bad RIP value.
Jun 18 06:16:16 nico-desktop kernel: [ 3984.949079] xpkey[13901]: segfault at 0 ip 0000000000000000 sp 00007fffc2e62678 error 14 in xpkey[400000+1000]
Jun 18 06:16:16 nico-desktop kernel: [ 3984.949088] Code: Bad RIP value.

Use dpcdll.dll to get site codes/channel IDs

Currently, the user has to specify the site code to activate editions that are not Professional VLK, but it's difficult to get a site code normally without external activation, which kind of defeats the purpose of this tool.

However, we can extract valid PID ranges from dpcdll.dll, which can be found in most ISOs or extracted from system32.

DPCDLL references a lot of BINKs that are not included in pidgen.dll or anywhere else, but these can be filtered out. Then, the PID ranges could be stored either in keys.json or a separate file.

This script can parse dpcdll.dll data to human-readable output (x86/x64 Windows XP only): https://gist.github.com/WitherOrNot/c4cff6ca8e2e0098bc9281f2eaacc9a9

A similar script could probably be made for Server 2003, but its DPCDLL has a different format that needs to be investigated.

Example output from Embedded POSReady 2009:

[
    {
        "index": 0,
        "bink": "0000002B",
        "pid_range": [
            119,
            119
        ],
        "type": "OEM",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 1,
        "bink": "0000002B",
        "pid_range": [
            120,
            169
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 2,
        "bink": "0000002B",
        "pid_range": [
            400,
            665
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 3,
        "bink": "0000002B",
        "pid_range": [
            667,
            699
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 4,
        "bink": "0000002B",
        "pid_range": [
            700,
            754
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 5,
        "bink": "0000002D",
        "pid_range": [
            119,
            119
        ],
        "type": "OEM",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 6,
        "bink": "0000002D",
        "pid_range": [
            120,
            169
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 7,
        "bink": "0000002D",
        "pid_range": [
            400,
            665
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 8,
        "bink": "0000002D",
        "pid_range": [
            667,
            699
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 9,
        "bink": "0000002D",
        "pid_range": [
            170,
            269
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 10,
        "bink": "0000002D",
        "pid_range": [
            700,
            754
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 11,
        "bink": "0000002D",
        "pid_range": [
            803,
            899
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 12,
        "bink": "0000000D",
        "pid_range": [
            100,
            199
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 125
    },
    {
        "index": 13,
        "bink": "0000000D",
        "pid_range": [
            200,
            619
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 14,
        "bink": "00000028",
        "pid_range": [
            5,
            110
        ],
        "type": "Evaluation",
        "days_to_activate": 14,
        "days_evaluation": 125
    },
    {
        "index": 15,
        "bink": "00000028",
        "pid_range": [
            112,
            119
        ],
        "type": "Evaluation",
        "days_to_activate": 120,
        "days_evaluation": 60
    },
    {
        "index": 16,
        "bink": "0000002A",
        "pid_range": [
            5,
            85
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 17,
        "bink": "0000002A",
        "pid_range": [
            337,
            359
        ],
        "type": "Tablet",
        "days_to_activate": 60,
        "days_evaluation": 2147483647
    },
    {
        "index": 18,
        "bink": "0000002C",
        "pid_range": [
            5,
            85
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 19,
        "bink": "0000002C",
        "pid_range": [
            337,
            359
        ],
        "type": "Tablet",
        "days_to_activate": 60,
        "days_evaluation": 2147483647
    },
    {
        "index": 20,
        "bink": "0000002C",
        "pid_range": [
            755,
            779
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 21,
        "bink": "0000002C",
        "pid_range": [
            785,
            789
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 22,
        "bink": "0000002E",
        "pid_range": [
            640,
            699
        ],
        "type": "Volume",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 23,
        "bink": "0000002C",
        "pid_range": [
            360,
            369
        ],
        "type": "Tablet",
        "days_to_activate": 60,
        "days_evaluation": 2147483647
    },
    {
        "index": 24,
        "bink": "0000002A",
        "pid_range": [
            755,
            779
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 25,
        "bink": "0000002C",
        "pid_range": [
            85,
            89
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 26,
        "bink": "0000002C",
        "pid_range": [
            95,
            99
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 27,
        "bink": "00000030",
        "pid_range": [
            900,
            904
        ],
        "type": "Tablet",
        "days_to_activate": 60,
        "days_evaluation": 2147483647
    },
    {
        "index": 28,
        "bink": "00000031",
        "pid_range": [
            119,
            119
        ],
        "type": "OEM",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 29,
        "bink": "00000031",
        "pid_range": [
            120,
            169
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 30,
        "bink": "00000031",
        "pid_range": [
            400,
            665
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 31,
        "bink": "00000031",
        "pid_range": [
            667,
            699
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 32,
        "bink": "00000031",
        "pid_range": [
            700,
            754
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 33,
        "bink": "00000031",
        "pid_range": [
            905,
            999
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 34,
        "bink": "00000033",
        "pid_range": [
            119,
            119
        ],
        "type": "OEM",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 35,
        "bink": "00000033",
        "pid_range": [
            120,
            169
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 36,
        "bink": "00000033",
        "pid_range": [
            400,
            665
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 37,
        "bink": "00000033",
        "pid_range": [
            667,
            699
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 38,
        "bink": "00000033",
        "pid_range": [
            170,
            269
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 39,
        "bink": "00000033",
        "pid_range": [
            700,
            754
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 40,
        "bink": "00000033",
        "pid_range": [
            803,
            899
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 41,
        "bink": "00000032",
        "pid_range": [
            291,
            300
        ],
        "type": "Tablet",
        "days_to_activate": 2147483647,
        "days_evaluation": 185
    },
    {
        "index": 42,
        "bink": "00000033",
        "pid_range": [
            301,
            320
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 43,
        "bink": "0000002B",
        "pid_range": [
            85,
            85
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 44,
        "bink": "0000002B",
        "pid_range": [
            86,
            95
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 45,
        "bink": "0000002B",
        "pid_range": [
            96,
            105
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 46,
        "bink": "0000002A",
        "pid_range": [
            106,
            106
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 47,
        "bink": "0000002A",
        "pid_range": [
            187,
            187
        ],
        "type": "Tablet",
        "days_to_activate": 60,
        "days_evaluation": 2147483647
    },
    {
        "index": 48,
        "bink": "0000002A",
        "pid_range": [
            188,
            188
        ],
        "type": "Tablet",
        "days_to_activate": 60,
        "days_evaluation": 2147483647
    },
    {
        "index": 49,
        "bink": "0000002B",
        "pid_range": [
            170,
            186
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 50,
        "bink": "0000002B",
        "pid_range": [
            189,
            189
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 51,
        "bink": "0000002B",
        "pid_range": [
            190,
            190
        ],
        "type": "OEM",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 52,
        "bink": "0000002B",
        "pid_range": [
            191,
            191
        ],
        "type": "OEM",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 53,
        "bink": "0000002C",
        "pid_range": [
            90,
            90
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 54,
        "bink": "0000002C",
        "pid_range": [
            111,
            111
        ],
        "type": "Tablet",
        "days_to_activate": 60,
        "days_evaluation": 2147483647
    },
    {
        "index": 55,
        "bink": "0000002C",
        "pid_range": [
            112,
            112
        ],
        "type": "Tablet",
        "days_to_activate": 60,
        "days_evaluation": 2147483647
    },
    {
        "index": 56,
        "bink": "0000002D",
        "pid_range": [
            90,
            90
        ],
        "type": "OEM",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 57,
        "bink": "0000002D",
        "pid_range": [
            100,
            110
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 58,
        "bink": "0000002D",
        "pid_range": [
            113,
            113
        ],
        "type": "OEM",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 59,
        "bink": "0000002D",
        "pid_range": [
            114,
            114
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 60,
        "bink": "0000002E",
        "pid_range": [
            700,
            701
        ],
        "type": "Volume",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 61,
        "bink": "0000002E",
        "pid_range": [
            704,
            705
        ],
        "type": "Volume",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 62,
        "bink": "0000002B",
        "pid_range": [
            107,
            118
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 63,
        "bink": "0000002B",
        "pid_range": [
            192,
            336
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 64,
        "bink": "0000002B",
        "pid_range": [
            755,
            899
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 65,
        "bink": "0000002B",
        "pid_range": [
            921,
            979
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 66,
        "bink": "0000002D",
        "pid_range": [
            271,
            336
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 67,
        "bink": "0000002D",
        "pid_range": [
            370,
            399
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 68,
        "bink": "0000002D",
        "pid_range": [
            780,
            784
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 69,
        "bink": "0000002D",
        "pid_range": [
            790,
            799
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 70,
        "bink": "0000002D",
        "pid_range": [
            900,
            979
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 71,
        "bink": "0000002C",
        "pid_range": [
            114,
            116
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 72,
        "bink": "0000002A",
        "pid_range": [
            362,
            376
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 73,
        "bink": "0000002A",
        "pid_range": [
            377,
            377
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 74,
        "bink": "0000002A",
        "pid_range": [
            984,
            984
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 75,
        "bink": "0000002C",
        "pid_range": [
            311,
            334
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 76,
        "bink": "0000002C",
        "pid_range": [
            336,
            336
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 77,
        "bink": "0000002C",
        "pid_range": [
            370,
            384
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 78,
        "bink": "0000002C",
        "pid_range": [
            385,
            385
        ],
        "type": "Retail",
        "days_to_activate": 30,
        "days_evaluation": 2147483647
    },
    {
        "index": 79,
        "bink": "0000000D",
        "pid_range": [
            940,
            960
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 80,
        "bink": "0000000D",
        "pid_range": [
            963,
            979
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 81,
        "bink": "0000000D",
        "pid_range": [
            985,
            986
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 82,
        "bink": "0000000D",
        "pid_range": [
            996,
            996
        ],
        "type": "Evaluation",
        "days_to_activate": 2147483647,
        "days_evaluation": 125
    },
    {
        "index": 83,
        "bink": "0000000D",
        "pid_range": [
            997,
            997
        ],
        "type": "Evaluation",
        "days_to_activate": 2147483647,
        "days_evaluation": 370
    },
    {
        "index": 84,
        "bink": "0000000D",
        "pid_range": [
            998,
            998
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 85,
        "bink": "0000000D",
        "pid_range": [
            620,
            620
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 86,
        "bink": "0000000D",
        "pid_range": [
            621,
            621
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 2147483647
    },
    {
        "index": 87,
        "bink": "0000000D",
        "pid_range": [
            622,
            622
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 125
    },
    {
        "index": 88,
        "bink": "0000000D",
        "pid_range": [
            623,
            623
        ],
        "type": "Embedded",
        "days_to_activate": 2147483647,
        "days_evaluation": 370
    }
]

Product ID / Key Generation

I calculated the values for XP pro retail and replaced them in the code.

The gen successfully spits out keys, but it always says they're invalid.
Windows accepts them no questions asked during installation.
After, however, I cannot login as the system asks me to activate instantly and kicks me out if I don't, but I can't activate because the Installation ID space is empty.

There's clearly something going on apart from the ECC stuff. I'm not smart enough to figure it out, but maybe it has to do with the raw PID and its values, like the Release Product Code not matching the build it's running under?

GUI interface?

Are there plans for a GUI interface to make UMSKT easier to work with (especially for the function of generating confirmation IDs)?

Python library

I think I opened this on @Endermanch's XPKeygen, but I would really like for a universal python library (my keygenlib library). I have got a Product ID generator working, and a 1-in-20 keygen for XP working, but I don't understand ECC and stuff.

How do i build this?

How do i build this? The guide says i gotta build it but i don't know what to use + how to build it. Sorry, i have neevr done this before.

Linux compile

In the Readme, under Usage it says:

  • If on Linux please clone and compile this repository using make and run using ./xpkey to generate a Volume License Key

This used to work, but now the Makefile is gone...
make: *** No targets specified and no makefile found. Stop.

How to compile now?

Compiling on debian 12 not working

Hello,

i want to compile this great project.
I using debian 12 and i have installed the three packages wich are listed in the readme.
Heere i post the SSH screen, where the error messages are displayed:

I run the command cmake ..

-- [UMSKT] Requesting static version of OpenSSL
CMake Error at /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.25/Modules/FindOpenSSL.cmake:613 (find_package_handle_standard_args)
CMakeLists.txt:102 (FIND_PACKAGE)

-- Configuring incomplete, errors occurred!
See also "/home/dev/UMSKT/build/CMakeFiles/CMakeOutput.log".

I attach the log file, what i make wrong?
Wich Linux distribution do you use and wich version?
Can i compile it on windows?

Regards
Armin
CMakeOutput.log

error compiling on windows

Hello,

i have tryed to compile this nice project on windows.
I have installed cmake and open ssl.
I open a commandline, go to the build folder and i type make ..
The folowing error message apears:

CMake Error at CMakeLists.txt:22 (PROJECT):
Running

'nmake' '-?'

failed with:

no such file or directory

CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

I don't understoud, what for errors are heere, do i have forgotten to install a program?
I attach the make textfile with the informations.

Regards
arminmoradi
CMakeCache.txt
96

Include a Check for Bad Product IDs?

I wonder whether it would be useful to include a check for Bad Product IDs.

These are IDs that would be rejected as invalid during a Service Pack installation:

As of 2005/10/22, Microsoft states that the following are invalid PIDs:

XXXXX-640-0000356-23XXX
XXXXX-640-2001765-23XXX

The above two product IDs are known as "Devil's Own", and usually have a product key starting with "FCKGW".

XXXXX-640-643718X-23XXX
XXXXX-641-309376X-23XXX
XXXXX-642-064580X-23XXX
XXXXX-642-464364X-23XXX
XXXXX-643-334701X-23XXX
XXXXX-644-081772X-23XXX
XXXXX-644-451265X-23XXX
XXXXX-644-874896X-23XXX
XXXXX-644-933704X-23XXX
XXXXX-644-962396X-23XXX
XXXXX-645-833254X-23XXX
XXXXX-645-994962X-23XXX
XXXXX-646-031843X-23XXX
XXXXX-646-104081X-23XXX
XXXXX-646-105103X-23XXX
XXXXX-647-318838X-23XXX
XXXXX-647-592029X-23XXX
XXXXX-647-677834X-23XXX
XXXXX-648-301691X-23XXX
XXXXX-648-819992X-23XXX
XXXXX-649-106765X-23XXX
XXXXX-649-941392X-23XXX
XXXXX-650-292312X-23XXX

These PIDs are detected when you attempt to install SP1, 2 or 3.

https://wiki.lunarsoft.net/wiki/Product_IDs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.