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 Crackme Sweeet Dream 1.0 de 2Sweeet
Intro Hoy tenemos aquí un crackme del año 2000 empacado y con un algoritmo aunque no muy complicado largo de
Read more.
Solución al KeyGenMe1 (RSA127) de C00lw0lf
Introducción Funcionamiento de RSA OllyDbg Calculando la clave privada (d) Ejemplo operacional Keygen Links Introducción Segunda crackme con RSA que
Read more.
VideoTutorial – RegisterMe de Shadow – Parcheando un NET
Lista de reproducción
Read more.
Cruehead’s Crackme 1.0 Keygen [1/3]
Introducción Esta es la primera entrega de tres en las que vamos a  ver tres crackmes que todo reverser debería
Read more.