Jpeg Optimizer v3.10

UN SERIAL DURO DE ENCONTRAR

Resolución Optima 1024 X 768

by FaT[BiT] \ TNT!

Cracking para Principiantes

 

Información del Programa

Nombre : jpegopt.exe

Tipo : Image Util.

URL : http://www.xat.com

Tamaño : 401KB

 

Herramientas :

W32Dasm v8.93

Any ASCII Table

Facil (  ) Medio ( X ) Dificil (  ) Profesional (  )


Jpeg Optimizer v3.10
Cracked y escrito por : FaT[BiT] \ TNT!
Tutorial No. : 2


Intoducción

TRADUCIDO AL ESPAÑOL POR !!
Pr@fEsOr X !!! / TnT

NOTA: DEL TRADUCTOR: esta traducción es un intento por poner a su disposición algunos tutoriales de crackers en ingles, Gracias a todos los que me han mandado sus tutoriales y sigan sigan mandando , que se vea lo que aprenden!!! y a compartir sus conocimentos.

Protección

Este programa necesita un Numero de Serie para registrarte !! , pero el problema con el serial es que esta codificado, si tratas de encontrar el mensaje de error, te ayudare un poco diciendote que no esta en los strings no te preocupes !!! , y trataremos otra cosa diferente !!!

Crackeando

Instala el jpeg optimizer y ejecutalo, y sale la ventana de UNREGISTERED , da click en help\register y trata de meter cualquier codigo y *BOOM* , el mensaje de error aparece !! , ahora trata de desensamblar el ejecutable, copia el archivo jpegopt.exe a el subdirectorio del win32dasm. desensamblado. que chido ya finalizo, busca el String del mensaje de error pero no esta , bueno ahora busca el mensaje de UNREGISTERED , da click en el boton de SDR window buscalo, o.k lo encontraste, da doble click sobre este y te mandara a esta parte del codigo:


* Possible StringData Ref from Data Obj -" - Unregistered"

:00404885 BA07C74700                  mov edx, 0047C707
:0040488A 8D8568FFFFFF                lea eax, dword ptr [ebp+FFFFFF68]
:00404890 E83F790400                  call 0044C1D4
:00404895 FF8548FFFFFF                inc dword ptr [ebp+FFFFFF48]
:0040489B 33C0                        xor eax, eax
:0040489D 898564FFFFFF                mov dword ptr [ebp+FFFFFF64], eax
:004048A3 8D9568FFFFFF                lea edx, dword ptr [ebp+FFFFFF68]
:004048A9 FF8548FFFFFF                inc dword ptr [ebp+FFFFFF48]
:004048AF 8D8D64FFFFFF                lea ecx, dword ptr [ebp+FFFFFF64]


Bueno... ahora busquemos algo interesante, como una CALL o Un salto, sube un poco hasta que veas el siguiente codigo :


* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040483E(U)

:00404845 51                   push ecx
:00404846 E899590200           call 0042A1E4 <-- a call>
:0040484B 59                   pop ecx
:0040484C 84C0                 test al, al <-- a test for the result of the call>
:0040484E 0F85EC010000         jne 00404A40 <-- jump if we pass the text>
:00404854 66C7853CFFFFFFA001   mov word ptr [ebp+FFFFFF3C], 01A0


bueno.... (por que escogimos esta CALL ?) , Hmm.. buena pregunta, pues muy facil, esta es la primera llamada antes del String UNREGISTERED y como pueden ver hay otra CALL antes pero esta la checaremos mas tarde, dentro de un rato veremos que hay dentro de ese CALL, posiciona la barra verde en el CALL y presiona el boton llamado CALL y tu podras ver algo como esto :


* Referenced by a CALL at Addresses:
|:00404846 , :00429651 <-- This Code is called Twice>

:0042A1E4 55                   push ebp
:0042A1E5 8BEC                 mov ebp, esp
:0042A1E7 83C4F4               add esp, FFFFFFF4
:0042A1EA 53                   push ebx
:0042A1EB 8B4508               mov eax, dword ptr [ebp+08] <-- put serial in eax>
:0042A1EE 8D5DF4               lea ebx, dword ptr [ebp-0C] <-- duplicate the serial>
:0042A1F1 8A10                 mov dl, byte ptr [eax] <-- start of the duplication>
:0042A1F3 8813                 mov byte ptr [ebx], dl
:0042A1F5 8A4801               mov cl, byte ptr [eax+01]
:0042A1F8 884B01               mov byte ptr [ebx+01], cl
:0042A1FB 8A5002               mov dl, byte ptr [eax+02]
:0042A1FE 885302               mov byte ptr [ebx+02], dl
:0042A201 8A4803               mov cl, byte ptr [eax+03]
:0042A204 884B03               mov byte ptr [ebx+03], cl
:0042A207 8A5004               mov dl, byte ptr [eax+04]
:0042A20A 885304               mov byte ptr [ebx+04], dl
:0042A20D 8A4805               mov cl, byte ptr [eax+05]
:0042A210 884B05               mov byte ptr [ebx+05], cl
:0042A213 8A5006               mov dl, byte ptr [eax+06]
:0042A216 885306               mov byte ptr [ebx+06], dl
:0042A219 8A4807               mov cl, byte ptr [eax+07]
:0042A21C 884B07               mov byte ptr [ebx+07], cl
:0042A21F 8A4008               mov al, byte ptr [eax+08]
:0042A222 884308               mov byte ptr [ebx+08], al
:0042A225 C6430900             mov [ebx+09], 00 <-- End of the duplication>
:0042A229 0FBE03               movsx eax, byte ptr [ebx] <-- check for our serial>
:0042A22C 50                   push eax
:0042A22D E8128A0400           call 00472C44 <-- check if fisrt char of our code is a letter>
:0042A232 59                   pop ecx
:0042A233 83F850               cmp eax, 00000050 <-- first char should be>
:0042A236 7559                 jne 0042A291 <-- if not equal to ( P ) then unregged>
:0042A238 0FBE5301             movsx edx, byte ptr [ebx+01]
:0042A23C 52                   push edx
:0042A23D E8028A0400           call 00472C44 <-- checks if 2nd char is a letter>
:0042A242 59                   pop ecx
:0042A243 83F847               cmp eax, 00000047 <-- 2nd char should be>
:0042A246 7549                 jne 0042A291 <-- if not equal to ( G ) then unregged>
:0042A248 0FBE4B02             movsx ecx, byte ptr [ebx+02]
:0042A24C 83F92D               cmp ecx, 0000002D <-- 3rd char should be>
:0042A24F 7540                 jne 0042A291 <-- if not equal to ( ) then unregged>
:0042A251 0FBE4303             movsx eax, byte ptr [ebx+03]
:0042A255 83F834               cmp eax, 00000034 <-- 4th char should be>
:0042A258 7537                 jne 0042A291 <-- if not equal to ( 4 ) then unregged>
:0042A25A 0FBE5304             movsx edx, byte ptr [ebx+04]
:0042A25E 83FA36               cmp edx, 00000036 <-- 5th char should be>
:0042A261 752E                 jne 0042A291 <-- if not equal to ( 6 ) then unregged>
:0042A263 0FBE4B05             movsx ecx, byte ptr [ebx+05]
:0042A267 83F936               cmp ecx, 00000036 <-- 6th char should be>
:0042A26A 7525                 jne 0042A291 <-- if not equal to ( 6 ) then unregged>
:0042A26C 0FBE4306             movsx eax, byte ptr [ebx+06]
:0042A270 83F837               cmp eax, 00000037 <-- 7th char should be>
:0042A273 751C                 jne 0042A291 <-- if not equal to ( 7 ) then unregged>
:0042A275 0FBE5307             movsx edx, byte ptr [ebx+07]
:0042A279 83FA32               cmp edx, 00000032 <-- 8th char should be>
:0042A27C 7513                 jne 0042A291 <-- if not equal to ( 2 ) then unregged>
:0042A27E C705F49F48001443FC69 mov dword ptr [00489FF4], 69FC4314
:0042A288 E8DFA8FDFF           call 00404B6C
:0042A28D B001                 mov al, 01 <-- Register Success !!!>
:0042A28F EB1B                 jmp 0042A2AC


chido !!! .... creo que hemos encontrado nuestro codigo, que piensas tu ?
dejenme explicarles :

es tiempo de usar nuestra tabla ASCII, (y por que ? ) , por que es de 8 caracteres de longitud, el primero y segundo caracter son letras, el tercero es una dash - , y del cuarto al octavo caracter son numeros, si le hechas un vistazo a las direcciones siguientes : 0042A233,0042A243, 42A2A24C, 0042A255, 0042A25E, 0042A267, 0042A270 y 0042A279 , podremos ver que los registros EAX, EDX, y ECX son comparados con lo siguiente :

Nota : estos son numeros hexadecimales

hex : 50 47 2D 34 36 36 37 32

Dec : P  G   -    4   6   6   7   2    <><--- *boom* our serial>

por lo tanto aqui tienes tu serial, ahora todo lo que tenemos que hacer es insertar ese codigo yyyyyy!!!! kool !!! Jpeg Optimizer is REGISTERED.

EL Parche

No Necesario!

Palabras Finales

ahi lo tienes, espero que hayas aprenddo algo de este tutorial, como tambien que disfrutáras con este, chao y nos vemos en el proximo tutorial!!!

FaT[BiT]_FaTsO Felicitaciones :

tKC ( me enseñaste la verdadera LUZ !!! muchas gracias )

LW2000 ( Gracias !!! ahora ya uso mi cerebro !!)

Xasx (Hola !! este tutorial es dedicado a ti !!)

Sir_dReAm ( espero te guste este tutorial !!! )

MazM ( Donde Diablos estas !! )

BillGamEZ ( Gracias !! eres un verdadero amigo !! )

Bonez (Gracias por tu Ayuda !! )

 

y a todos los Miembros de TNT!CRACK!TEAM!

 

                                                                                                                                                                                                                  cya FaT[BiT] \ TNT!


www.000webhost.com