Archivos
Llave (+Aesculapius)
1.
|
La
mejor herramienta para analizar un
Archivo Llave es un editor hex. Los
editores de texto no son adecuados para
esta tarea. |
2.
|
Un
Archivo Llave no es nada más que una
serie continua de bytes dentro de un
archivo pequeño. Estos bytes reflejan la
información personal del usuario (encriptada),
checksums de la integridad del archivo
llave, fechas encriptadas, nombres,
direcciones, flags encriptados (por
ejemplo: un flag para la licencia
multi-usuario), etc. |
3.
|
Para
derrotar el esquema de protección basado
en un Archivo Llave, debes crear un
pequeño programa para codificar un
pequeño Archivo Llave ficticio. Este
programa genérico debe poder crear
archivos bajo nombres y tamaños
diferentes. El contenido de este archivo
ficticio (contra lo que la mayoría
cree) debe ser información legible.
En mi caso, el generador de archivos
llave ficticio, corta un capítulo grande
de mi novela favorita y lo pega en el
archivo ficticio, ajustando el tamaño y
nombre del archivo según mis
necesidades. ¿Por qué la información
legible dentro del archivo ficticio?
Porque el programa designado leerá
direcciones de offset estratégicas del
archivo llave. Un texto legible dentro de
él advertirá sobre la situación que
está leyéndose en cualquier momento.
También marcará las situaciones donde
cierto checksums debe agregarse al
archivo de la llave final. |
4.
|
El
nombre de archivo Llave es en la mayoría
los casos, el nombre de archivo
ejecutable principal del programa
designado con la extensión ' * .key '.
Un viejo flag estúpido todavía
disponible estos días. Otras estrategias
para deducir el nombre de archivo Llave,
es el uso de una utilidad para búsquedas
de strings, leyendo el manual del usuario
(a veces el autor incluirá
instrucciones en la instalación de Archivo
Llave, revelando su nombre), a nivel
de debugging, BPINT 21 if ah==3d (DOS),
cuando el break ocurre, ejecuta: D (E)DX
en la pantalla de comandos de SoftICE, en
Entorno de Windows, BPX CreatFile,
ReadFile, GetFileAttributesA, etc.,
realizará la misma tarea. Una vez has
deducido el nombre de archivo de la
Llave, has creado el archivo ficticio y
lo has copiado al mismo camino como el
objetivo principal ejecutable. Empieza el
programa y mira lo que pasa. Si recibes
un mensaje ' Invalid Key File' o '
Corrupted Key File' (otra estúpida flag),
tu trabajo de cracking esta muy reducido;
el paso lógico próximo es investigar la
situación del código donde este mensaje
se activa. |
5.
|
El
Archivo Llave tiene que ser leído. No
hay ninguna otra alternativa, el programa
debe leer el Archivo Llave para probar su
validez. Según esto, deben ponerse
breakpoints apropiados en interrupciones
de lectura de archivo (DOS) o API's
(Windows). |
|
|