Rsolution du keygenme
================================================================================

Calculs
--------------------------------------------------------------------------------

  Aprs dcortication du keygenme, on se retrouve face  l'quation suivante :

e * n1 ^ i * (n2 ^ (p - 2)) ^ e = SHA256(name) mod p

avec :

e
-> serial crypt de manire rversible (de type xor), aprs lecture du champ
correspondant ;

n1
-> 276BEBF74A8157614CBF6B2A5FD51C2B7CF3B652DCC1EB0D34FDD38BB9934D9203E2 (non
premier) ;

i
-> identifiant sous forme brute, dont la valeur maximale est 6AB353F03E1 - 1 ;

n2
-> 1740384CCEBAD64F59ACE57FE5C0F9A3A499CE7BF174B2D92BC15E7997B46791CBFA (non
premier) ;

p
-> 357A3C9D0457404AE1A83BA9DF6BD3CB7DF92C0BAD68FB3A5E9ACB9CF54E7D7A07E3.

Notre but est bien entendu d'arriver  fixer les variables e et i pour que
l'galit soit vraie.
Pour faciliter les calculs, il convient de fixer l'une des deux valeurs ;
intuitivement nous choisirons e = SHA256(name).

Ce qui donne :

SHA256(name) * n1 ^ i * (n2 ^ (p - 2)) ^ SHA256(name) = SHA256(name) mod p

Il faudrait que le terme n1 ^ i * (n2 ^ (p - 2)) ^ SHA256(name) soit gal  1,
et nous aurions trouv la solution.
On peut s'aider pour cela de l'une des propositions les plus dmontres de
l'histoire des mathmatiques,  savoir le petit thorme de Fermat :

a ^ (p - 1) = 1 mod p, avec a un nombre quelconque et p premier.

Nous n'avons plus qu' adapter n1 ^ i pour que l'on se retrouve avec quelque
chose du type (n2 ^ (p - 1)) ^ SHA256(name).

Rflchissons :

(n2 ^ (p - 2)) ^ SHA256(name) = (n2 ^ SHA256(name)) ^ (p - 2) en inversant
l'ordre des exposants.

Il nous faut donc trouver : n1 ^ i = n2 ^ SHA256(name).
Avec n1 ^ k = n2, on aurait :

(n1 ^ k) ^ l = n2 ^ SHA256(name), ainsi l = SHA256(name), ce qui nous vite de
calculer le logarithme discret  chaque changement de nom.

En effet, il ne nous reste plus qu' calculer i = kl mod 6AB353F03E1, avec k
fix une bonne fois pour toutes.

Passons  la pratique :

n1 ^ k = n2 <=> k = 4AAB90B4031 (on trouve le logarithme avec des outils
adquats).

On a SHA256("Canterwood") =
8CD377125DDC3FF2B5D298DBC0DBBFFC5FB1AB6700331E2D3AA595F432332A8D = l.

i = kl mod 6AB353F03E1 = 63ADE69E49C, soit 6849909351580 en dcimal.

Il ne reste plus qu' coder le keygen.

Notes finales
--------------------------------------------------------------------------------
  Je suis conscient que ce tutorial est succint et incomplet, mais il est juste
destin  exposer mon mode de raisonnement, et suffit pour rsoudre le keygenme.
Et puis les sources sont l pour montrer comment est gnre l'information
d'enregistrement.

Have a nice day!

Canterwood