--

ESTUDIO COLECTIVO DE DESPROTECCIONES
WKT Tutorialz Site
WKT
Mr.Brown Ejemplos de BreakPoints para el SoftIce Julio 1998

Introducción
Una de las habilidades más importantes para desproteger un programa es saber Dónde, Cuándo y Qué Tipo de BreakPoints usar.
En caso contrario, acabas perdido entre cientos de lineas de código, sin poder encontrar la rutina de protección buscada.

Las posibilidades de BreakPoints son infinitas, pero hay algunos que se usan frecuentemente para las desprotecciones.

Tener en cuenta si el programa debugado es de 16 o 32 bits para los Puntos de Ruptura en las llamadas al Api de windows.
Por ejemplo, BPX GetWindowText (para 16 bits) y BPX GetWindowTextA (para 32 bits).
O sea, que los programas para W95 de 32 bits llevan la A al final.

Ejemplos de BreakPoints útiles para el cracking
1)General Purposes
------------------
BPX messagebox 
BPX getdlgitemtext 
BPX getwindowtext 
BPX hmemcpy 
BPX showwindow 
BPX updatewindow 
BMSG xxxx wm_gettext 
BMSG xxxx wm_command 
BMSG xxxx wm_move 

2)Time Related
--------------
BPINT 21 if ah==2A (DOS) 
BPX getlocaltime 
BPX getfiletime 
BPX getsystemtime 

3)Register Flag Related (e.g. Flag on EAX)
-----------------------
BPX cs:eip if EAX==0 (SICE 3.x) 

4)Memory Flag Related (e.g. Flag on 0030:000045AA)
---------------------
BPMB cs:eip rw if 0x30:0x45AA==0 (SICE 3.x) 

5)"Hear The Echo" Technique Related
-----------------------------------
BPX 0x30:0x45AA do "d 0x30:0x44BB" (SICE 3.x) 
BPX CS:0x66CC do "? EAX" (SICE 3.x) 

6)CD-ROM and Disk Based Schemes 
-------------------------------
BPINT 13 if ah==2 (DOS) 
BPINT 13 if ah==3 (DOS) 
BPINT 13 if ah==4 (DOS) 
BPX GetFileAttributesA 
BPX GetFileSize 
BPX GetDriveType 
BPX GetLastError 
BPX ReadFile 
BPIO -h (Your CD-ROM Port Address) R 

7)Dongle Cracking
-----------------
BPIO -h 278 R 
BPIO -h 378 R 

8)Key File Related
------------------
BPINT 21 if ah==3dh (DOS) 
BPINT 31 if ah==3fh (DOS) 
BPINT 21 if ah==3dh (DOS) 
BPX ReadFileA 
BPX CreateFileA 

9)Keyboard Input Related
------------------------
BPINT 16 if ah==0 (DOS) 
BPINT 21 if ah==0xA (DOS) 

Nota: Texto original en inglés de Aesculapius