Autor
|
Tema: Crackme 05 consola obfuscado (Leído 2,631 veces)
|
_Enko
|
Para aquellos que les guste nopear saltos A ver quien encuentra el salto correcto!!! Objetivo: Hacer un parche para ver mensaje de "buen chico" o bien, encontrar clave valida. (no vale invertir cadenas de los mensajes) Detalle: *)El crackme no esta empaquetada *)El crackme esta sumamente obfuscado *)La validacion es sumamente sencilla *)Esta en modo consola, al arrancar ingresen el serial, boton enter y rezar ^^ Dificultad: Ni idea, depende en lo que se tarde en resolver, ya me lo comentaran. Vale tanto parche como encontrar el serial valido. http://www.mediafire.com/?x0m3r29wv99xx5jhttp://www.megaupload.com/?d=WPS6NGIN
|
|
« Última modificación: 24 Octubre 2011, 17:06 pm por _Enko »
|
En línea
|
|
|
|
Tinkipinki
Desconectado
Mensajes: 242
|
Saludos _Enko :
No se si me acerco pero creo que:
Mensaje de serial valido en: 401014 Mensaje de serial no valido en: 401024
..pero no se mas, ni como poder ver bien el codigo de estas direcciones (ofuscado).
Este va a ser un crackme super interesante, agradecer a ti y a todos los que programais crackme's vuestras aportacines.
Saludos
|
|
« Última modificación: 23 Octubre 2011, 13:30 pm por Tinkipinki »
|
En línea
|
|
|
|
_Enko
|
El codigo de la aplicacion es si, son 50 intrucciones que estan obfuscadas y se cuadruplican aproximadamente. Es un crackme de tipo analizar bien lo que se ve y descartar lo inutil.
pd: 401XXX es sección data '.data', ahi no estan los mensajes del serial valido e invalid, sino las cadenas de esos mensajes. De hecho, si inviertes las cadenas obtienes el resultado de 'serial valido', pero no es el objetivo xD
pista: todo el codigo se encuentra a partir de del entry point en 40200.... no hay codigo antes.
|
|
« Última modificación: 23 Octubre 2011, 17:02 pm por _Enko »
|
En línea
|
|
|
|
ThunderCls
Desconectado
Mensajes: 455
Coder | Reverser | Gamer
|
Por parte de la ofuscacion ha estado bueno, bastante "basura" en medio del camino para despistar y dificultar el traceo. Por parte del serial, como bien dices...es tan sencillo como: serial + 1 = 45AC34BE serial = 45AC34BE - 1 serial = 45AC34BDSaludos PD: Si con ese nivel de ofuscacion se le agrega un algoritmo de registro mas trabajado, el crackme seria mucho mas duro.
|
|
|
En línea
|
|
|
|
_Enko
|
Por parte de la ofuscacion ha estado bueno, bastante "basura" en medio del camino para despistar y dificultar el traceo. Por parte del serial, como bien dices...es tan sencillo como: serial + 1 = 45AC34BE serial = 45AC34BE - 1 serial = 45AC34BDSaludos PD: Si con ese nivel de ofuscacion se le agrega un algoritmo de registro mas trabajado, el crackme seria mucho mas duro. Lo hice asi de facil para que la peña intentara resolverlo, pero por lo visto no hubo muchos voluntarios. Si quires resolver un keygen interesante, intenta con http://foro.elhacker.net/ingenieria_inversa/keygenme4_console-t342421.0.htmlte aseguro que el algoritmo es super novedoso y el codigo bien prolijo ^^
|
|
« Última modificación: 24 Octubre 2011, 22:19 pm por _Enko »
|
En línea
|
|
|
|
.:UND3R:.
|
No había intentado este crackme de _Enko
el código está muy bien ofuscado para tracear, puede complicarnos y despistarnos un poco, traceando llego a la siguiente comparación:
00402536 ? 813D 47104000>CMP DWORD PTR DS:[401047],45AC34BE
en donde si miro en el dump el contenido de 401047 notaré que está el serial introducido incrementado en 1 es decir si mi serial es 989898 aparecerá 989899, por lo que la comprobación correcta, debería ser
CMP 989898,45AC34BE-1
en salto a modificar es: 00402551 ? /74 39 JE SHORT crackme5.0040258C
Si lo invertimos tendremos el serial válido, de todas maneras los créditos son exclusivamente de [ Thunder | CLS ] que lo crackeo mucho antes que yo
Saludos
|
|
|
En línea
|
Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
|
|
|
_Enko
|
Para aquellos que lo han intentado resolver, les dejo el source para que vean lo facil que hubiera sido sin la obfuscacion. [spoiler] format PE Console entry start include '%fasminc%\win32a.inc' include '%fasminc%\macro\if.inc' random_seed = 4234; macro random { random_seed = ((random_seed*214013+2531011) shr 16) and 0xffffffff mov eax, random } macro jmp dest { push dest retn db $74 } macro call dest { local ..ret push ..ret jmp dest ..ret: } macro mov dest,src { local .._mov,.._over,.._quit jmp .._over db $73 dd $ .._mov: mov dest,src jmp .._quit .._over: jmp .._mov cmp ecx, [$] db $74 .._quit: } macro add dest,src { local .._add,.._over,.._quit jmp .._over lea eax, [eax* 2 + $] db $75 .._add: add dest,src jmp .._quit cmp eax, $ .._over: jmp .._add cmp eax, $ db $76 .._quit: } macro xor dest,src { local .._add,.._over,.._quit jmp .._over lea eax, [ebx + ecx * 2 + $] db $79 .._add: xor dest,src jmp .._quit .._over: jmp .._add lea eax, [ebx + ecx * 2 + $] db $7a .._quit: } macro lea dest,src { local .._add,.._over,.._quit jmp .._over db $7b .._add: lea dest,src jmp .._quit .._over: jmp .._add db $7c .._quit: } macro je dest { local ..over jmp ..over db $75 ..over: je dest } macro push op { local ..over jmp ..over cmp eax, [$] db $7d ..over: push op } section '.data' data readable writeable szPause db 'PAUSE',0 szInt db '%i',0 szStr db '%s',0 szHex db '%X',0 szNewStr db '%s',10,13,0 szValid db 'serial valido',10,13,0 szNotValid db 'serial no valido',10,13,0 szInput db 16 dup ? iSerial dd ? _printf dd ? _scanf dd ? _sscanf dd ? section '.code' code readable executable start: push ebp mov ebp, esp mov eax, [printf] mov [_printf], eax mov eax, [scanf] mov [_scanf], eax mov eax, [sscanf] mov [_sscanf], eax xor ebx, ebx mov esi, 0xFF push szInput xor ebx, ebx push szStr call [ebx + _scanf] add esp, 8 push iSerial push szHex push szInput call [_sscanf] add esp, 12 inc [iSerial] lea eax, [ebx + szValid + esi * 2] cmp [iSerial], 0x45AC34BD + 0x1 je end_validation lea eax, [ebx + szNotValid + esi * 2] end_validation: push eax sub [esp], esi push szStr sub [esp + 4], esi call [ebx + _printf] add esp, 8 push szPause call [system] add esp, 4 pop ebp retn section '.idata' import data readable writeable library kernel32,'kernel32.dll',\ user32,'user32.dll',\ msvcrt,'msvcrt.dll' include '%fasminc%\api\kernel32.inc' include '%fasminc%\api\user32.inc' include '%fasminc%\api\msvcrt.inc'
[/spoiler] felicitacion under por resolverlo tambien cosa que no es para nada facil el traceo.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Crackme
Ingeniería Inversa
|
byebye
|
8
|
5,695
|
6 Julio 2003, 11:12 am
por shoulck
|
|
|
Os dejo un crackme, mi primer crackme ^^
« 1 2 »
Ingeniería Inversa
|
frankener1986
|
14
|
12,917
|
14 Agosto 2006, 00:59 am
por sircid
|
|
|
[APORTE] Usando consola con Threads (aka: consola estilo quake) :D
.NET (C#, VB.NET, ASP)
|
raul338
|
0
|
3,925
|
6 Marzo 2010, 17:27 pm
por raul338
|
|
|
[CrackMe] - D-CrackMe by .:WindHack:.
Ingeniería Inversa
|
.:WindHack:.
|
3
|
4,001
|
26 Julio 2010, 23:45 pm
por .:WindHack:.
|
|
|
[CRACKME] Crackme 3 por MCKSys Argentina
« 1 2 3 »
Ingeniería Inversa
|
MCKSys Argentina
|
29
|
18,646
|
18 Enero 2013, 20:48 pm
por SITEA
|
|