--

ESTUDIO COLECTIVO DE DESPROTECCIONES
WKT Tutorialz Site
WKT
progrAmA WinRAR 2.04 W95
DEsCripCión Programa para Compresión de ficheros.
tipo Shareware (35 $)
protECCión Algunas Limitaciones si no estás registrado.
DiFiCultAD 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista
hErrAmiEntAs SoftIce 3.22, Editor Hexadecimal
CrACkEr Mr.Brown
FEChA Julio de 1998

Introducción
Es necesario registrarse para tener acceso a algunas opciones, como "Authenticity Verification".

Lo ideal sería analizar más a fondo la rutina que calcula la clave en función del nombre, y hacer un generador de claves.
Pero el método más rápido es interceptar la rutina y provocar el valor que queremos que devuelva. ;-)

Al Atake
Arrancar el Pc con el SoftIce 3.22, con el fichero WinIce.Dat debidamente configurado.
(Ver "Introducción al SoftIce" en la sección de Documentoz Genéricoz para más información)

Ejecutar el programa WinRAR, y seleccionar la opción para registrarse.
Introducir cualquier nombre en Registration (AV) Text (Ej:ECD IntroCracking)
Introducir cualquier clave en Registration Code (Ej:222333)

Pulsar Ctrl+D para ir al SoftIce.

Una de las maneras en que el programa puede leer la información que hemos tecleado, es con GetWindowTextA o con GetDlgItemTextA (lo de la A al final es para los programas 32 bits)
Así que vamos a poner un par de BreakPoints para estas instrucciones :

  BPX getwindowtexta 
  BPX getdlgitemtexta
Pulsamos Ctrl+D para volver al WinRAR, y le damos al botón OK.

Apareceremos en el SoftIce, y desactivamos los BreakPoints con BD *
Vamos haciendo F12 hasta llegar al código del WinRar. (Saltándonos el código del Kernel,User...)
Llegaremos a :4139A6, después de la llamada a User32!GetDlgItemTextA
El valor guardado (el nombre) está en [EBP-64], que podemos ver haciendo D ebp-64

Avanzamos con varios F10, hasta la siguiente llamada a GetDlgItemTextA.
El valor (la clave) queda en [EBP-AC] (que es lo mismo que [EBP+FFFFFF54])

Unos pocos F10 más, y veremos :

:004139E9 8D9554FFFFFF    lea edx, dword ptr [ebp+FFFFFF54]
:004139EF 52              push edx  ; la clave (222333)
:004139F0 8D4D9C          lea ecx, dword ptr [ebp-64]
:004139F3 51              push ecx  ; el nombre (ECD IntroCracking)
:004139F4 E80369FFFF      call 0040A2FC   ; Validar_Registro
:004139F9 83C408          add esp, 00000008
:004139FC 85C0            test eax, eax
:004139FE 752F            jne 00413A2F  ; Salta si OK (AX=1)
Así pues, la rutina que valida el nombre y la clave introducidas está en :40A2FC
Acaba en :40A596, y devuelve AX=1 si OK, y AX=0 si no ok.
Pero además, en la posición de memoria [00425758] también guarda ese valor.

Así que vamos a rediseñar esa rutina, para hacerla funcionar más rápido. ;-)
Lo que la rutina debe hacer es devolver un valor en AX y en [425758], todo lo demás sobra. ;-)
Y si ese valor es 1, mejor que mejor. ;-DD Por ejemplo :

:0040A2FC 33C0        xor eax,eax
:0040A2FC 40          inc eax
:0040A2FC A358574200  mov dword ptr [00425758],eax
:0040A2FC C3          ret
Si aplicamos estos cambios antes de continuar la ejecución, nos dirá que "Correct Registration".
Pero si cerramos el WinRar, y lo volvemos a abrir, nos dirá que "Evaluation Copy".
Así que hay que hacer los cambios efectivos en el fichero WinRar95.exe

Con un editor hexadecimal, vamos a la posición 98FC, y ponemos encima de lo que haya :
33C040A358574200C3
Después de salvar, ya tenemos el WinRAR "optimizado" ;-)

Si todavía no hemos hecho la opción de Registrarse con el parche, nos saldrá lo de "Evaluation Copy".
Tan sólo hacer el Registro con el nombre y clave que queramos, y yatá ;-)

También podeis probar si habeis aplicado bién el parche, seleccionando un fichero para comprimir con el WinRAR, y activar la casilla de "Authenticity Verification".
Si os deja es que está todo Ok.


Nota : Si la rutina que valida el registro (que va de :40A2FC hasta :40A596) hiciera algo más de lo que yo he supuesto, y por tanto no se pudiera parchear tan alegremente com he hecho, la solución entonces sería poner ECX=1 en :40A56F
Como no acostumbro a usar el WinRar, no lo he podido comprobar al 100%. Ya me diréis....