Update README.md

This commit is contained in:
Andrew 2023-05-28 16:58:24 +03:00 committed by GitHub
parent 2878ca4aa2
commit 45de018a6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 2 deletions

View File

@ -240,6 +240,7 @@ To compute the private key, we will need to supply the tool with the public ECC
The order of the base point can be computed using SageMath. The order of the base point can be computed using SageMath.
**Here's the basic algorithm I used to reverse the Windows 98 private key:** **Here's the basic algorithm I used to reverse the Windows 98 private key:**
1. Compute the order of the base point using **SageMath**. In SageMath, execute the following commands: 1. Compute the order of the base point using **SageMath**. In SageMath, execute the following commands:
1) `E = EllipticCurve(GF(p), [0, 0, 0, a, b])`, where `p`, `a` and `b` are decimally represented elliptic curve parameters from the BINK resource. 1) `E = EllipticCurve(GF(p), [0, 0, 0, a, b])`, where `p`, `a` and `b` are decimally represented elliptic curve parameters from the BINK resource.
2) `G = E(Gx, Gy)`, where `Gx` and `Gy` are decimally represented base point coordinates from the BINK resource. 2) `G = E(Gx, Gy)`, where `Gx` and `Gy` are decimally represented base point coordinates from the BINK resource.
@ -254,7 +255,7 @@ The order of the base point can be computed using SageMath.
3) Insert the factors of the base point order `n` and specify the factor count. It will very likely be `1`, as Microsoft mainly uses primes for their generator orders. 3) Insert the factors of the base point order `n` and specify the factor count. It will very likely be `1`, as Microsoft mainly uses primes for their generator orders.
4) Run the tool `<arch> ECDLP Solver.exe <job_name>.txt` and wait until it calculates the private key `k = %d` for you. 4) Run the tool `<arch> ECDLP Solver.exe <job_name>.txt` and wait until it calculates the private key `k = %d` for you.
Here's an example of the Windows XP job `job_xp.txt` that yields the correct private key for the ECDLP Solver. **Here's an example of the Windows XP job `job_xp.txt` that yields the correct private key for the ECDLP Solver.**
```pascal ```pascal
GF := GF(22604814143135632990679956684344311209819952803216271952472204855524756275151440456421260165232069708317717961315241); GF := GF(22604814143135632990679956684344311209819952803216271952472204855524756275151440456421260165232069708317717961315241);
@ -267,9 +268,15 @@ FactorCount:=1;
*/ */
``` ```
And the ECDLP Solver output for it: **And the ECDLP Solver output for it:**
![ECDLP Solver Output](https://github.com/Endermanch/XPKeygen/assets/44542704/ca018eae-ae33-41e5-a689-2c17da972184) ![ECDLP Solver Output](https://github.com/Endermanch/XPKeygen/assets/44542704/ca018eae-ae33-41e5-a689-2c17da972184)
**Important note:**
Be wary that I could not generate a correct Windows XP x64 key using the private key I've reversed, even using the `Ky` coordinate instead of usual `-Ky`.
For some reason, I also failed to calculate the Windows Server 2003 base point order using SageMath. **I gave it 12 hours to compute on my i7-12700K, but it was still stuck calculating.**
### Validating / generating product keys ### Validating / generating product keys
The rest of the job is done within the code of this keygen. The rest of the job is done within the code of this keygen.