Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
XPKeygen — Keygen de Windows XP | Kitploit
Herramientas/GitHubGitHub/endermanch/xpkeygen
Ingeniería InversaCriptografíaAnálisis de Binarios
GitHubendermanch/xpkeygen

XPKeygen

Keygen de Windows XP

Ver Repositorio
1.1k6815hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

XPKeygen

Un generador de claves VLK para Windows XP / Windows Server 2003. Esta herramienta te permite generar claves válidas de Windows XP basadas en la Raw Product Key (Clave de Producto sin procesar), que puede ser aleatoria. La Raw Product Key (RPK) se proporciona en forma de 9 dígitos XXX-YYYYYY y solo es necesaria para generar una clave de Windows XP.

XP Keygen

Descarga

Ve a la pestaña de Releases y descarga la última versión desde allí.

Planes

Este proyecto no está muerto — haré todo lo posible por llevarlo a buen término.

El problema

En general, lo único que nos separa de generar claves válidas de Windows XP para CADA EDICIÓN y CADA COMPILACIÓN es la falta de las respectivas claves privadas generadas a partir de sus contrapartes públicas dentro de pidgen.dll. No hay código disponible en línea para la función de logaritmo discreto de curva elíptica, solo hay información vaga sobre cómo hacerlo.

Con el tiempo, el problema se ha resuelto parcialmente.

El recurso BINK no estaba codificado de ninguna manera y los datos simplemente se escribían secuencialmente en el recurso. sk00ter también explicó por completo el formato BINK en los foros de MDL. Aprovechando el conocimiento previo de la comunidad sobre el tema, escribí un lector BINK en Python 3. El archivo es público en este repositorio, haz clic aquí para ver el código fuente.

La solución del logaritmo discreto es el área de investigación más inexplorada a día de 28 de mayo de 2023. Sin embargo, mi amigo nephacks encontró esa escurridiza herramienta para resolver ese difícil problema en los rincones más oscuros de internet. Se llama ECDLP (Problema del Logaritmo Discreto de Curva Elíptica) Solver, de Mr. HAANDI. Como era extremadamente frustrante encontrarla en línea, la volví a subir a mi sitio web. Puedes descargar la herramienta aquí.

El archivo ReadMe que viene con la versión 0.2a del solucionador es suficientemente bueno por sí solo, así que cualquiera con un poco de criterio podrá configurar esa herramienta. Sin embargo, no es de código abierto, por lo que integrarlo en mi keygen resulta imposible.

En el escenario ideal, el keygen te pediría un recurso BINK extraído de pidgen.dll, que luego descompondría en los siguientes segmentos:

  • Clave pública (pubX; pubY)
  • Generador (genX; genY)
  • Punto base (a; b)
  • Cantidad de puntos p

Conociendo estos segmentos, el keygen forzaría por fuerza bruta el orden del generador genOrder usando el algoritmo de Schoof, seguido de la clave privada privateKey, aprovechando el genOrder calculado para usar el algoritmo más óptimo de Pollard Rho. No hay duda de que podemos descifrar cualquier clave privada en cuestión de 20 minutos usando poder computacional moderno, siempre que tengamos el algoritmo funcional.

Una vez que el keygen termina de forzar por fuerza bruta la clave privada correcta, la tarea se reduce a generar realmente una clave, que es lo que hace este keygen. Para darte una mejor perspectiva, puedo proporcionarte el flujo del keygen ideal. Lo que está tachado es lo que implementa mi keygen:

  • Extracción del recurso BINK
  • Solución por fuerza bruta del logaritmo discreto de curva elíptica (genOrder, privateKey)
  • Mecanismo de procesamiento de la clave de producto
  • Generación de claves de Windows XP
  • Validación de claves de Windows XP
  • Generación de claves de Windows Server 2003

Principio de funcionamiento

Necesitamos usar una Raw Product Key aleatoria como base para generar un ID de producto con la forma AAAAA-BBB-CCCCCCS-DDEEE.

ID de Producto

DígitosSignificado
AAAAAConstante de familia de SO
BBBID de canal
CCCCCCNúmero de secuencia
SDígito de comprobación
DDÍndice de clave pública
EEENúmero aleatorio de 3 dígitos

La constante de familia de SO AAAAA es diferente para cada serie de Windows XP. Por ejemplo, es 76487 para SP3.

Las secciones BBB y CCCCCC esencialmente codifican la Raw Product Key. Por ejemplo, si la primera sección es igual a XXX y la segunda sección es igual a YYYYYY, la Raw Product Key se codificará como XXX-YYYYYY.

El dígito de comprobación S se elige de modo que la suma de todos los dígitos C más él dé un número divisible por 7.

El índice de clave pública DD nos permite saber qué clave pública se usó para verificar con éxito la autenticidad de nuestra Clave de Producto. Por ejemplo, es 22 para claves Professional y 23 para claves VLK.

Se usa un número aleatorio EEE para generar un ID de instalación diferente cada vez.

Clave de Producto

La Clave de Producto en sí (no confundir con la RPK) tiene la forma FFFFF-GGGGG-HHHHH-JJJJJ-KKKKK, codificada en Base-24 con el alfabeto BCDFGHJKMPQRTVWXY2346789 para excluir cualquier carácter que pueda confundirse fácilmente, como I y 1 u O y 0.

Según la fórmula de capacidad del alfabeto, la clave puede contener como máximo 114 bits de información. $$N = \log_2(24^{25}) \approx 114$$

Con base en ese cálculo, descomponemos la Clave de Producto de 114 bits en 4 segmentos ordenados:

SegmentCapacityData
Upgrade1 bitIndicador de versión de actualización
Serial30 bitsRaw Product Key (RPK)
Hash28 bitsHash de la RPK
Signature55 bitsFirma de curva elíptica para el hash de la RPK

Por simplicidad, combinaremos los segmentos Upgrade y Serial en un solo segmento llamado Data. Con esa lógica podremos extraer la RPK desplazando Data a la derecha y volver a empaquetarla desplazando los bits a la izquierda, porque la mayoría de las claves de producto a priori válidas que he comprobado tenían el bit de actualización establecido en 1.

Microsoft rehizo el formato de su Clave de Producto con Windows Server 2003 para incluir una clave de autenticación de servidor backend, que era un enfoque realmente seguro para la validación de licencias, ya que nadie podía adivinar qué algoritmo de validación habían empleado en su servidor privado. Además de añadir el mecanismo de validación en línea, también aumentaron la aritmética general de 384 a 512 bits y el escalar de la firma a 62 bits de información.

SegmentCapacityData
Upgrade1 bitIndicador de versión de actualización
Channel ID10 bitsLa parte BBB de la RPK
Hash31 bitsHash de la RPK
Signature62 bitsFirma de curva elíptica para el hash de la RPK
Auth Key10 bitsValor de autenticación backend

Sin embargo, si generábamos una clave sin tener en cuenta la activación en línea, aún podíamos generar claves válidas que nos permitieran pasar la instalación del sistema operativo. Y eso es exactamente lo que hace el código: genera una clave de autenticación aleatoria de 10 bits. Hoy en día no importa en absoluto, ya que los servidores de activación están caídos y Server 2003 se considera abandonware, del mismo modo que todo este proyecto no debería considerarse piratería.

Curvas Elípticas

Descargar herramienta