Hola:
Hace algún tiempo para hacer lo que tu quieres, se me ocurrió algo parecido y lo que hice fue lo siguiente:
En este caso, hacia un cálculo con cada uno de los números de arriba, que no viene al caso porque lo lógico es que cada uno se lo invente a su manera, por ejemplo supongamos que hacemos en este caso
8754 * 121 = 1059
234
9403 * 212 = 1993
436
1801 * 037 = 66
637
Juntamos en un String los 3 ultimos de cada secuencia 23
44
36
63
7 y después por ejemplo tomamos desde el último 1 SI 1 NO 7634
Estos cálculos son los que hace internamente el programa, entonces el usuario pulsa sobre un botón o en la instalación del programa le aparece la siguiente pregunta:
Indique código de desbloqueo para 8754-9403-1801, en este momento me llama, yo inicio mi Unlocker y le digo, 2394, evidentemente el programa ya sabia que el usuario debía introducir 2394, si no lo introduce, no se ejecuta.
Otro tema es que después te encargues de guardar en el Registro, o donde a ti te de la gana 'algo' que le indique a tu programa que éste ya se encuentra registrado, para no volver a pedir el número.
Es una idea entre tantas, pero creo que resulta bastante difícil de adivinar ya que los tres número iniciales SIEMPRE son aleatorios
Saludos