Queries the Windows Worker host's local Trusted Store, Registry DPIDs, or BIOS/UEFI MSDM table (requires -EnableHostTools on Windows Worker).
Unpacks Base24 Windows 8+ / Office 2013+ keys containing 'N' into Group, Serial, Security, Checksum, Upgrade, and Extra bits.
Unpacks Pre-Vista 25-char keys (Bink1998 & Bink2002) using their BINK ID hex value.
Checks redeem key status against licensing.m365.svc.cloud.microsoft without consuming balance.
Queries remaining activations using an Extended/Advanced PID.
This application splits PKeyMaster into two tiers:
linux-php/): Hosts the Web Interface (index.php), Public REST API (api.php), and native PHP engine (src/PKeyMasterEngine.php) for Pre-98 key validation, PKey2009 decoding, PKey980-986 decoding, PreVistaRanges matching, DPID v2/v3/v4 binary/hex parsing, PKeyConfig XML/CSV exporting, and file key scanning.windows-worker/): Runs WindowsWorkerServer.ps1 to handle only pidgenx32.dll / pidgenx64.dll P/Invoke calls and Microsoft server connections (SLCertifyProduct, SLActivateProduct, BatchActivation, VisualSupport DPoP, and OLSC Redeem).POST /api.php?action=...)?action=check-key)curl -X POST http://your-linux-server/api.php?action=check-key \
-H "Content-Type: application/json" \
-d '{
"productKey": "NJCF7-PW8QT-3324D-688JX-2YV66",
"profile": "Automatic",
"keyCertification": true,
"keyActivation": false,
"makCount": true,
"checkRedeemKey": true,
"getInstallationId": true,
"getConfirmationId": false
}'
?action=get-cid)curl -X POST http://your-linux-server/api.php?action=get-cid \
-H "Content-Type: application/json" \
-d '{
"installationId": "442875505090948411270215934376216135091582729253066826014283446",
"apiMode": "Auto"
}'
?action=decode-2009 | decode-980 | check-pre98)curl -X POST http://your-linux-server/api.php?action=decode-2009 \
-H "Content-Type: application/json" \
-d '{"productKey": "NJCF7-PW8QT-3324D-688JX-2YV66"}'
curl -X POST http://your-linux-server/api.php?action=decode-980 \
-H "Content-Type: application/json" \
-d '{"productKey": "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX", "binkIdHex": "0x2A"}'
curl -X POST http://your-linux-server/api.php?action=check-pre98 \
-H "Content-Type: application/json" \
-d '{"productKey": "123-1234566"}'
?action=certify | activate | mak-count | redeem)curl -X POST http://your-linux-server/api.php?action=redeem \
-H "Content-Type: application/json" \
-d '{"redeemKey": "XXXXX-XXXXX-XXXXX-XXXXX-XXXXZ"}'
curl -X POST http://your-linux-server/api.php?action=mak-count \
-H "Content-Type: application/json" \
-d '{"advancedPid": "00000-00138-207-109016-03-1033-26100.0000-0922026"}'
?action=pkeyconfig)curl -X POST http://your-linux-server/api.php?action=pkeyconfig \
-H "Content-Type: application/json" \
-d '{"profile": "28000 - Windows 11 24H2-25H2-26H2 - Server 2025 - Azure Local 24H2"}'
?action=scan-keys | scan-dpid)curl -X POST http://your-linux-server/api.php?action=scan-keys \ -F "files[]=@/path/to/keys.txt" curl -X POST http://your-linux-server/api.php?action=scan-dpid \ -F "files[]=@/path/to/backup.reg"
Configure the Windows Server URL running WindowsWorkerServer.ps1.