Introducción

Segunda crackme con RSA que afrontamos. Esta vez se trata de un crackme realizado en VC++ 7.0 y en sus entrañas utiliza RSA-127 (421 bits). Una cosa que no comenté en la entrega anterior (RSA-200), es que conviene utilizar el plugin Kanal de PEiD para localizar cuando se utilizan números grandes o determinados hashes como MD5 o SHA1.

16-02-2015 01-49-36

Otra cosa es que os quería comentar es la coletilla 127. Esta lo determina el módulo n y signifíca que contiene 127 cifras decimales o 421 bits.

Funcionamiento de RSA

  1. Inicialmente es necesario generar aleatoriamente dos números primos grandes, a los que llamaremos p y q.
  2. A continuación calcularemos n como producto de p y q:
  3. Se calcula fi:
  4. Se calcula un número natural e de manera que MCD(e, fi(n))=1 , es decir e debe ser primo relativo de fi(n). Es lo mismo que buscar un numero impar por el que dividir fi(n) que de cero como resto.
  5. Mediante el algoritmo extendido de Euclides se calcula d que es el inverso modular de e.
  6. El par de números (e,n) son la clave pública.
  7. El par de números (d,n) son la clave privada.
  8. Cifrado: La función de cifrado es.
  9. Descifrado: La función de descifrado es.

OllyDbg

Con OllyDbg analizamos la parte del código que nos interesa.

El código nos proporciona el exponente público (e) y el módulo (n).

  • e = 29F8EEDBC262484C2E3F60952B73D067
  • n = 666AAA422FDF79E1D4E41EDDC4D42C51

Finalmente realiza un PowMod con el número de serie del disco C y el par de claves (e,n).

Calculando la clave privada (d)

Una vez localizados los datos anteriores lo siguiente es factorizar para obtener los primos p y q y finalmente d.

RSA127_rsatool

d = 65537

Ejemplo operacional

RSA127_bigint

Keygen

El keygen está hecho en Java ya que permite trabajar con números grandes de forma sencilla.

Links


Keygen para el KeygenMe#01 de eBuC – Comparación lineal
Primeras impresiones Analizamos el programa con PEiD y nos muestra que está hecho en ensamblador. Unas pruebas introduciendo datos nos
Read more.
Keygen para el Crackme#8 de Kwazy Webbit – Comparación no lineal
Primeras impresiones El crackme es el típico de usuario y número de serie. Si no introduces un nombre te salta
Read more.
VideoTutorial – KeyGen para el Crackme#2 de AfKayAs
Lista de reproducción
Read more.
Cruehead’s Crackme 3.0 Keygen [3/3]
Introducción Esta es la tercera y última entrega de los crackmes de Cruehead. En esta ocasión nos enfrentamos a un
Read more.