TORN@DO presents: cRACKER's n0TES

Tips & Trucos para crackear NAG Screens



Removiendo Anuncios de Aureate Media (+Tsehp)
Cuando lanzas un programa que te muestra un banner cambiando cada 3 segundos, es bastante molesto... apenas puedes dejar de mirar ese banner. Primero yo me pregunto: ¿Cuál podría ser la LLAMADA para desplegar esto?

¿CreateBitmap? ¿DrawIcon? ¿FillRect?

Ninguno de estos... esto no funciona con un solo BPX en SoftICE. Así que yo intenté en SoftICE HWND binboy y ves la ventana oculta: ADVERT.DLL ...

No tienes que mirar ninguno más: Dispara Win32Dasm en ADVERT.DLL localizado en Windows\System o WinNT\System32 y mira las funciones exportadas... verás _paint, mira la dirección y pon un BPX en esta dirección con SoftICE.

¡Y funciona! Cada vez que el banner cambia el programa Llama a esta función exportada en ADVERT.DLL... rastrea esta función dentro de ADVERT.DLL e inspecciona el banner, llegarás aquí:


* Reference To: GDI32.StretchDIBits, Ord:0000h

   |
:XXXX (depende de tu memoria)
:XXXX E871750400 Call 0045DD24
:XXXX 85C0 test eax, eax
:XXXX 0F95C2 setne dl


Aquí está la documentación de esta función:

La función StretchDIBits copia los datos de color para un rectángulo de puntos en un mapa de bits independiente del dispositivo (DIB) al rectángulo del destino especificado. Si el rectángulo del destino es más grande que el rectángulo de la fuente, esta función estira las filas y columnas de datos de color para encajar el rectángulo del destino. Si el rectángulo del destino es menor que el rectángulo de la fuente, esta función comprime las filas y columnas usando el funcionamiento de la trama especificado.


int StretchDIBits( 
HDC hdc, 		  // manipulador de contexto del dispositivo 
int XDest, 		  // coordenada X de la esquina superior-izquierda del rect. dest. 
int YDest, 		  // coordenada Y de la esquina superior-izquierda del rect. dest. 
int nDestWidth, 	 	  // anchura del rectángulo de destino 
int nDestHeight, 	    	  // altura del rectángulo de destino 
int XSrc, 		  	  // coordenada X de esquina superior-izquierda de rect de la fuente. 
int YSrc, 		  	  // coordenada Y de esquina superior-izquierda de rect de la fuente. 
int nSrcWidth,	      	  // anchura de rectángulo de la fuente 
int nSrcHeight, 	   	  // altura de rectángulo de la fuente 
CONST VOID *lpBits,      	  // dirección bits del mapa de bits 
CONST BITMAPINFO *lpBitsInfo,   // dirección de datos del mapa de bits 
UINT iUsage, 		  // uso 
DWORD dwRop 		  // código de funcionamiento de trama 
); 

Así que tu tienes la elección: simplemente "NOPea" la LLAMADA a esta función o cambia los parámetros y mostrará cualquier cosa que tu quieras. Bien, yo lo "nopeé" y no muestra nada.





Crackeando NAG Screen (josephCo)


Esto puede parecer también confuso... pero de nuevo, juega alrededor de ello. Te acostumbrarás a usarlo. Cuando una NAG Screen aparece, entra en SoftICE y teclea:

     HWND

Debes ver algo similar a:

Window-Handle hQueue SZ QOwner Class-Name Window-Procedure
0080 (0) 2057 32 MSGSVR32 #32711 (switch_win) 17EF:00004B6E
0084 (1) 2057 32 EXPLORER shell_trayWnd 1487:0000016C
... ... ... ... ... ...


Lo que necesitas hacer es desplazar hacia abajo la lista de manipuladores, y mirar el QOWNER. Encuentra el manipulador de un proceso que pertenezca a tu programa, y si tu NAG Screen tiene un botón de OK, busca un BUTTON bajo el class name. Si tu NAG Screen no tiene uno, entonces cualquier cosa que tenga BUTTON después de él, no será el manipulador que quieres romper. Esto será ensayo/ error hasta que consigas el que quieres (explicado un poco). La lista de manipuladores probablemente será bastante larga, pero normalmente el NAG Screen está entre los primeros que pertenecen a tu programa.

TORN@DO's Tip
Recomiendo altamente usar una herramienta como SMU Winspector para crackear NAGs. Te ahorrará la cosa del ensayo / error, de modo que aliviará tu trabajo, que siempre es bueno.

SMU Winspector y otras herramientas de ese tipo muestran toda la información que necesitas, Window-Handle, Window-Class Name, Window-Text, Parent Window-Handle, Parent-Window Class Name, Parent Window-Text, Module ...



Una vez pienses que has encontrado el manipulador de la NAG screen, querrás usar el comando BMSG. Si quieres ver el parámetro exacto que lo permite, mientras estés en SoftICE, teclea:

     HELP BMSG

OK, ahora a nuestro ejemplo. Supón que tu NAG tiene un botón de OK después del manipulador que quieres romper (más fácil de encontrar), y piensas que has encontrado el manipulador apropiado. Tendrás que teclear:

     BMSG 0084 WM_DESTROY

Donde 0084 es el manipulador de tu NAG Screen. Lo que esto hace básicamente, es decir a SoftICE que rompa después de que el NAG Screen se ha borrado de la pantalla. Estarás muy dentro de algún API desconocido, así que tendrás a F12 (P RET) el cual pondrá la Pausa en RETorno atrás al código de tu programa. A estas alturas quieres encontrar donde el NAG inicial fue creado (pon BPX en la mayoría de las Llamadas que llegan de fuera). El NAG Screen probablemente será creada/destruida en la misma LLAMADA, así que si encuentras la correcta, haz cualquier cosa que necesites hacer.





Splash Screens (Predator NLS)


La manera más rápida de crackear NAG Screens es usar un Editor Hex y tus ojos. Arranca tu programa y espera hasta que la NAG Screen aparezca. Ahora anota la captación de la ventana y las primeras palabras del mensaje de diálogo. Entonces abre tu EXE (o DLL) y busca el string anotado. Si lo encontraste, te desplazas hacia arriba y buscas los 4 bytes FF FF FF 80... y si estuvieran ahí reemplaza el 80h por 90h. Después de este parcheado, arranca tu programa y nunca verás de nuevo el NAG.

A veces es necesario apretar un botón para continuar. ¡En esto casos a menudo, debes usar un debugger!




 

The cRACKER's n0tES esta dividido dentro de 12 partes principales:
 TX. Notas del Traductor
 00. INDICE
 01. Ensamblador para Cracker (CoRN2)
 02. SoftICE (Menú de arranque , Configuración, Comandos)
       
 1 Menú de arranque
       
 2 Configuración
       
 3 Comandos
 03. Breakpoints & Detalles de API de Windows
       
 1 Programas restringidos
       
 2 Cajas de diálogo
       
 3 Verificando el Tipo de unidad
       
 4 Acceso a archivos
       
 5 Acceso al Registro
       
 6 Cogiendo números de serie
       
 7 Accediendo a Tiempo & Fecha
       
 8 Generando ventanas
 04. Instrucciones de salto
 05. Instrucciones SET
 06. Tips & Trucos para Crackear
       
 1 Programas restringidos
       
 2 Dongles
       
 3 General
       
 4 Configuración de InstallSHIELD
       
 5 Protecciones con Archivo llave
       
 6 Pantallas molestas
       
 7 Límites de Runtime
       
 8 Serials
       
 9 Limites de Tiempo
       
10 Programas Visual BASIC
 07. Ventanas de Mensajes Para los Cracker
 08. Identificando funciones, Argumentos, y Variables (Rhayader)
 09. Los Sistemas de Protecciones de comerciales
       
 1 Armadillo
       
 2 C-Dilla SafeDISC
       
 3 SalesAgent
       
 4 SecuROM
       
 5 softSENTRY
       
 6 TimeLOCK
       
 7 VBox
 10. Bitmanipulation (Cruehead)
 11. Teoría general de Cracking
 12. FAQ

 +A. Cómo contactar conmigo
 +B. ¿Que es lo Nuevo?


 



The cRACKER's n0TES are Copyright 1998-2000 by TORN@DO of ID.
Todo los Derechos Reservados.
Traducido por
Revisado por X-Grimator.