¿Cómo nacen los keygens?

La respuesta de Razvan cubrió el “quién” bastante bien, pero no entró en el “cómo”.

Cuando estaba en la escuela secundaria, pensaba que el software de ingeniería inversa era mucho más divertido que ir a clase. Probablemente escribí más de 100 keygens solo con fines educativos.

Para escribir un keygen solo se necesitan un par de herramientas a su disposición y conocimientos generales de ensamblaje (y suficiente conocimiento en ASM / C / C ++ para desarrollar realmente el keygen).

Herramientas de ingeniería inversa

  • Desensamblador. Prefiero IDA Pro: esta es una herramienta increíble que existe desde hace mucho tiempo. Esta herramienta puede desmontar casi todos los binarios conocidos que se han creado.
  • Depurador Utilicé SoftICE hace muchas lunas, pero la herramienta goto hoy en día es Ollydbg para Windows.
  • Editor hexadecimal. HIEW (vista de hackers) fue mi favorito y es una herramienta para ir a los usuarios de Windows. Aunque puede que no necesite esto para encontrar el algo para escribir el keygen, puede ser útil si necesita editar el binario para acceder a la parte del programa para ingresar el nombre y / o el número de serie. Por ejemplo, el nombre y el cuadro de serie solo aparecen después de 30 días, por lo que debe editar el binario para pensar que ha caducado.
  • Hay muchas otras herramientas para la ingeniería inversa, pero para escribir un keygen estas son las únicas herramientas que realmente necesita. Para obtener más herramientas de ingeniería inversa, consulte el archivo de CrackZ aquí: http://www.woodmann.com/crackz/T…

Ahora pasaré por un proceso paso a paso sobre cómo generar una aplicación de destino. Este es un nivel bastante alto, pero debería darle una buena idea de cómo se hace.

  1. Encuentra el nombre / formulario de serie. A veces, estos se ocultan con una combinación de teclas secretas para disuadir a los posibles crackers.
  2. El objetivo utilizará algún tipo de API para acceder al texto en el formulario. Por ejemplo, en WinAPI, una API común utilizada es GetWindowText. Al establecer un punto de interrupción en su depurador en esa API, puede acercarse bastante al código en la aplicación que llama a esa API y relativamente cerrar el algoritmo que se utiliza para autenticar que el nombre y la combinación de serie son correctos.
  3. Encontrar el algoritmo. Una vez que encuentre la API que se está utilizando, deberá salir del código API interno y volver al código del objetivo para poder acceder al algoritmo. Esta es posiblemente la parte más difícil. La mayoría de las veces el algoritmo es fácil de encontrar, pero comprender lo que está sucediendo puede ser muy difícil. Algunos algoritmos pueden tener 50,000 líneas de largo.
  4. Una vez que encuentre dónde comienza el algoritmo, escriba la dirección y abra su desensamblador y pase a esa dirección. Esto le dará una mejor visión del algoritmo y le permitirá tomar notas para que pueda escribir su keygen.
  5. Si el objetivo calcula una serie real para el nombre de pila y compara la serie falsa con la serie real, la dificultad del keygen es un orden de magnitud más fácil, ya que todo lo que necesita hacer es copiar y pegar el ASM que genera la serie real en un ASM / C ++. Obviamente, la dificultad varía, pero si el algoritmo realiza sumas de comprobación en diferentes partes de la serie o utiliza comprobaciones específicas de hardware (números de serie del disco duro o dirección MAC), la dificultad puede variar.
  6. Una vez que el algoritmo ha sido descifrado, el cracker crea el keygen para generar números de serie basados ​​en las entradas dadas.