ESTUDIO COLECTIVO DE DESPROTECCIONES
Última Actualizacion: 25/10/2001

Programa WinBabel v4.2 W95 / W98 / NT
Descripción Traductor Simultáneo Multilingüe para ver cualquier aplicación en cualquier idioma sin modificarla. Traduce Ventanas, Web y Portapapeles
Tipo Shareware
Tipo de Tutorial [X]Original, []Adaptación, []Aplicación, []Traducción
Url http://www.winbabel.com
Protección Nag Screen y traduce 5 minutos si y 5 no
Dificultad 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista
Herramientas SoftIce v3.25, W32dasm v8.9, Ultra Edit 7.00b, Hacker's View 6.16
Objetivo Anular Nag Screen y quitar limitación 5 minutos
Cracker FrEdY
Fecha 14 de febrero de 2000

INTRODUCCION
* Programa 32 Bytes cuya única limitación es que traduce 5 minutos si y 5 no por
  no estar registrado. 

* Aparece una nag-screen cada vez que se arranca el programa.

* El objetivo es suprimir la Nag-screen y la limitación de tiempo

* Función SoftIce.
  Apoyo del desensamblado, comprobación de los procesos, paradas, etc...
  
* Función del W32dasm.
  Su función es aportarnos el desensamblado en lenguaje máquina.

* Función del UltraEdit.
  Editor hexadecimal para hacer los cambios que necesitemos en el ejecutable.
  
* Función del Hacker's View.
  Busca y/o remplaza comandos de ensamblador, cadenas hexadecimales y de texto.
AL ATAQUE

Arrancamos el programa y nos muestra la siguiente nag-screen:
NagWinBabel.gif - 6398 Bytes
Lo primero que hay que hacer es eliminar esa nag-screen, para lo cual, una vez desensamblado con el W32dasm, guardamos el project file para no tener que desensamblarlo mas tarde. Pulsamos el botón Seach para buscar NOTA: y encontraremos: * Possible StringData Ref from Data Seg O64 ->"NOTA: Esta copia de WinBabel no " Sin embargo no nos sirve ya que es la NOTA: de los 5 minutos. Buscamos la siguiente, pero W32dasm no encuentra más, que raro pero si lo habia comprobado con UltraEdit y había 2 cadenas que contenian NOTA:, utilizo el Loader32 del SoftIce para cargar el programa, una vez en la ventana del SoftIce, coloco un Bpx MessageBoxA, y pulso F5 y aparece la Nag-Screen, pulsamos en Aceptar y nos regresa a la ventana del SoftIce y pulsando F12, nos situaremos dentro de WINBABEL!CODE+4e3D en la linea siguiente de la llamada del mensaje. Desplazandonos por la ventana del código veremos: * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00414DDB(C) | :00414DF2 E8ABCDFFFF call 00411BA2 ;Iniciar Traductor :00414DF7 8B4508 mov eax, dword ptr [ebp+08] :00414DFA A310254200 mov dword ptr [00422510], eax :00414DFF E872FAFFFF call 00414876 ;Iniciar lista controles :00414E04 681B4C4100 push 00414C1B ;Procesa mensaje :00414E09 8D83490A0000 lea eax, dword ptr [ebx+00000A49] ;WINBABEL :00414E0F 50 push eax :00414E10 FF7508 push [ebp+08] :00414E13 E822B3FFFF call 0041013A :00414E18 83C40C add esp, 0000000C :00414E1B E8A1ECFFFF call 00413AC1 ;ESPAC :00414E20 85C0 test eax, eax :00414E22 7450 je 00414E74 ;Mostrar Nag/Crear Ventana Programa :00414E24 6AFF push FFFFFFFF * Reference To: USER32.MessageBeep, Ord:0000h | :00414E26 E829A10000 Call 0041EF54 :00414E2B 6A00 push 00000000 :00414E2D 8D83580B0000 lea eax, dword ptr [ebx+00000B58] ;WinBabel :00414E33 50 push eax :00414E34 8D83520A0000 lea eax, dword ptr [ebx+00000A52] ;NOTA: :00414E3A 50 push eax :00414E3B 6A00 push 00000000 * Reference To: USER32.MessageBoxA, Ord:0000h | :00414E3D E80CA10000 Call 0041EF4E ;Mustra Nag-Screen :00414E42 6A00 push 00000000 ;Aquí paro SoftIce delpues de F12 La eliminación de la nag-screen está en el salto condicional de la línea 414e22, por lo que sustituimos 74 por 75 en el Offset 5422 Una vez parcheado con UltraEdit lo probamos y observamos que funciona perfectamente, no mostrando la nag-screen y entrando directamente la siguiente ventana del programa que mantiene siempre en primer plano:
VentanaWinBabel.gif - 4485 Bytes
Transcurridos 5 minutos al pinchar en una de la opciones: Traducir Ventanas, Traducir Web, y/o Traducir Portapapeles muestra la siguiente ventana:
5mWinBabel.gif - 4528 Bytes
Desensamblado con el W32dasm, el proyecto que guardamos. Pulsamos el botón Seach para buscar por ejemplo NOTA: y encontraremos sólo: * Possible StringData Ref from Data Obj ->"NOTA: Esta copia de WinBabel no " Desplazandonos más arriba veremos el siguiente listado: * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00414278(U) | :0041428E E8B4F8FFFF call 00413B47 ;Es tiempo PAC :00414293 85C0 test eax, eax :00414295 7449 je 004142E0 ;No mostrar Nag/Seguir :00414297 83FB01 cmp ebx, 00000001 :0041429A 740A je 004142A6 ;Mostrar Nag/Seguir :0041429C 83FB02 cmp ebx, 00000002 :0041429F 7405 je 004142A6 ;Mostrar Nag/Seguir :004142A1 83FB03 cmp ebx, 00000003 :004142A4 753A jne 004142E0 * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:0041429A(C), :0041429F(C) | :004142A6 6A00 push 00000000 :004142A8 E874F5FFFF call 00413821 ;Poner estado traducir :004142AD 59 pop ecx :004142AE 6AFF push FFFFFFFF * Reference To: USER32.MessageBeep, Ord:0000h | :004142B0 E89FAC0000 Call 0041EF54 ;MessageBeep :004142B5 6A04 push 00000004 * Possible StringData Ref from Data Obj ->"WinBabel PAC" | :004142B7 688E0C4200 push 00420C8E ;Guarda dirección WinBabel PAC * Possible StringData Ref from Data Obj ->"NOTA: Esta copia de WinBabel no " ->"esta registrada." | :004142BC 68470C4200 push 00420C47 ;Guarda dirección NOTA: ... :004142C1 6A00 push 00000000 * Reference To: USER32.MessageBoxA, Ord:0000h | :004142C3 E886AC0000 Call 0041EF4E ;Mustra mensaje :004142C8 83F806 cmp eax, 00000006 :004142CB 0F8526010000 jne 004143F7 :004142D1 6A05 push 00000005 La eliminación de la limitación de tiempo está en el salto condicional de la línea 414295, por lo que sustituimos 74 por EB en el Offset 4895 Una vez parcheado con Hacker's View podremos analizar el programa sin limitaciones. Esto es todo, hasta la próxima ..... Un Saludo
[ Entrada | Documentos Genéricos | WkT! Web Site ]
[ Todo el ECD | x Tipo de Protección | x Fecha de Publicación | x Orden Alfabético ]
(c) Whiskey Kon Tekila [WkT!] - The Original Spanish Reversers.
Si necesitas contactar con
nosotros , lee esto antes e infórmate de cómo puedes ayudarnos