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.
                 
                 |