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