TORN@DO presents: cRACKER's n0TES
Sistemas de Protecci�n Comerciales : softSENTRY



Crackeando softSENTRY 2.007 (LSD)
Ok, carga tu objetivo protegido con el prop�sito de desensamblar el proceso y mirar c�mo trabaja softSENTRY. Para desensamblar usaremos SoftICE, porque Wdasm89 parecen caerse cuando intentamos cargar este objetivo. El archivo Protegido, y el archivo original tiene un tama�o diferente. Bueno, probablemente te esperar�s, como hice yo, alg�n encriptado y algunas variable aleatorias en el esquema de protecci�n dentro del objetivo. Te vas a llevar una sorpresa.

Ahora mant�n la respiraci�n: �ste es el punto de la entrada para TODOS los ARCHIVOS PROTEGIDO:

    :004B066F  CC            	           int 3  
    :004B0670  55                          push ebp                 ; <----- Comenzamos aqu�  
    :004B0671  8BEC          	          mov ebp,esp  
    :004B0673  83EC48                  sub esp,00000048  
    :004B0676  53                         push ebx  
    :004B0677  56                         push esi  
    :004B0678  57                         push edi  
    :004B0679  E950000000           jmp 004B06CE  
    :004B067E  0000                     add [eax],al  
    :004B0680  7006                     jo 004B0688  
      
     


�Mira! Todos los archivos protegidos, tienen el mismo modelo, con el mismo SALTO (codificado como E950000000)!


Esto es muy �til, para nosotros; esto significa que buscando cualquier archivo 'protegido' por este modelo:


55 8B EC 83 EC 48 53 56 57 E9 50 00 00 00



�Nos dar�, el punto entrada del programa, y nos dice si el programa ha sido ' protegido' con el Esquema SoftSentry2!
Te dije que te quedar�as con la boca abierta de sorpresa.

Incre�ble, y muy muy tonto. El est�pido SALTO 4b6ce (muy ins�lito), apunta EIP a la rutina de protecci�n real (puedes compr�ndelo f�cilmente trazando por encima del c�digo)
.







Esta rutina salta diferente para cada tipo de ' esquema de protecci�n' que el programador haya seleccionado para usar:

L�mite de Tiempo, salpicadura ...etc. Si la Protecci�n falla, aterrizar�s EN 00093C9B:


    00093C82:  8B4508              mov eax,[ebp][00008]  ; Carga el valor correcto para pasarlo a la llamada..
    00093C85:  50                     push eax                  ; ..�Lo empuja!..
    00093C86:  68A0324B00      push 004B32A0          ; idem
    00093C8B:  FF156C744B00  call [0004B746C]        ; Esta es la llamada[User32!UnregisterClass]
    00093C91:  E88A000000      call 001279B1            ; *** �CARGA LA FUENTE DE EL
                                                        PROGRAMA PRINCIPAL	!
    00093C96:  E825000000      call 00127956            ; *** Esta LLAMADA, Activa EL PROGRAMA
                                                      PRINCIPAL!
    00093C9B:  8B45B8            mov eax,[ebp][0FFB8]; *** �ATERRIZAS AQUI! Si falla
                                                       la rutina de comprobaci�n! 
                                                                	  ; �Cargar el manipulador del principal?
    00093C9E:  50                   push eax                    ; preparar para la llamada
    00093C9F:  FF15E4734B00  call [0004B73E4]         ; Esta es la LLAMADA [Kernel32!ExitProcess] 
                                                      		 ; y termina el programa
    

Estas 2 Llamadas en 93C91, 93C96 mantienen a los programas COMPLETOS completamente libres de cualquier NAG, Splash, limite de tiempo, cualquier ' protecci�n' que haya sido escogido (yo lo s�, porque lo tengo ejecutado!); y si comparas esta fuente con cualquier otro programa protegido, ver�s que ambas llamadas SIEMPRE son codificadas como:


    E8 8A 00 00 00 E8 25 00 00 00 
    ^^^^^          ^^^^^ 
    1� Llamada    2� llamada 
    (usa un editor hex topara buscarlo)

    

�Muy bonito!.. as� que el esquema de protecci�n trabaja como:


    :MAINPROGRAM-PROTECTED
      
                         Jmp SoftSentriProtection (Siempre E950000000)
    :End MAINPROGRAM-PROTECTED
      
    :SoftSentriProtection
      
                         // Pon aqu� c�digo nag-splash-limite de tiempo //
                         // Hecho con SoftSentr2.007            //

                         IF (TrialPeriod==OK) Then
                                   CALL LoadResouce_FullProgram (Siempre E88A000000)
                                   CALL Run_Fullprogram (Siempre E825000000)
                         Else
                                   Kernel21!CallExitprocess

    :End SoftSentriProtection
    

�OK? Ahora podemos escribir un Crack General para este incre�blemente tonto Esquema de Protecci�n Comercial, simplemente cambiando el primer salto (codificado como E950000000) con el c�digo correcto de las 2 LLAMADAS (qu�, como recuerdas, siempre era E88A000000 E825000000). �OK?


    1) Busca por 55 8B EC 83 EC 48 53 56 57 E9 50 00 00 00 

                                             ^^^^^^^^^^^^^^ �EL SALTO! 
   
    2) Reemplaza con E8A2040000 E83D040000 (*) 
                    1� llamada   2� llamada 

   
    (*) Nota que el c�digo de las 2 llamadas han sido recalculadas para la nueva posici�n
        (�Siempre lo mismo! Simplemente rastr�alo una pizca en tu debugger!) 

    

Ok, nosotros hemos eliminado otro Esquema de' Protecci�n' Comercial.

Espero que entiendas el punto entero: �Nunca nunca nunca uses protecciones comerciales 'usar y listo'! Los programadores orientados comercialmente son la casta de programadores m�s in�til y tonta, ellos NUNCA podr�n ofrecerte ninguna protecci�n real en absoluto... por el bien de godzilla crea tus propias protecciones, no es tan dif�cil despu�s de todo, y conocer�s hasta el menor detalle de lo que est�s haciendo.






 
 
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.