Crackme by desnight

Iniciado por desnight, 24 Mayo 2008, 16:35 PM

0 Miembros y 1 Visitante están viendo este tema.

desnight

Os pongo un crackme hecho por mi.
Lenguaje: Visual basic 6
http://www.megaupload.com/?d=A6B2Q0SE

Saludos.
Que es mi barco mi tesoro,
que es mi dios la libertad,
mi ley, la fuerza y el viento,
mi única patria, la mar.

Amerikano|Cls

Cuando tenga tiempo le doy una ojeadita XD

AmeRiK@nO




Mi blog:
http://amerikanocls.blogspot.com

apuromafo CLS

duda existe serial valido? sin tener que parchar?

karmany

Hola desnight, muchas gracias por la colaboración.
Ya lo he descargado y lo incluyo en el apartado de Crackmes.

Bueno, yo rápidamente le he echado un vistazo y está compilado en Visual Basic Nativo. Es muy sencillo de analizar, aunque me ha sorprendido esa comparación que parece digamos que "extraña", ya que parece que no se va a cumplir...
Tal vez sea algún truco tuyo..

Gracias
Un saludo
karmany

apuromafo CLS

#4
POR ESO mismo pregunto, pero todo va en un codigo
por mi parte me sale el chico bueno, pero quiero consultar para no equivocarme al decir, lo crackee porque no resultaba la comparacion..

saludos

aver un mini tutorial para crackearlo

0040212B     90             NOP
0040213C     90             NOP

luego ejecutas con cualquier nombre o cualquier pass
diferente a los que se pensaban
y listo cracked
el codigo medio complicado va en esto
0040213F   . 23F0           AND ESI,EAX
solo coloca 1 cuando los 2 son iguales
pero desnigh se cambia a mayusculas y luego compara con la proxima clave
por lo tanto, por el push esi rarifico, se altera el orden dejando que el serial para el nombre nunca exista
y luego para el pass al ser igual cambian pero el and con los nopeos anteriores no funcionaria ..
por lo tanto

si cambio de modo (nopeo masivo)

00402124   . 8BF0           MOV ESI,EAX
00402126     90             NOP
00402127     90             NOP


0040213C     90             NOP
0040213D     90             NOP
0040213E     90             NOP
0040213F   . 23F0           AND ESI,EAX
00402141   . 8D45 E4        LEA EAX,DWORD PTR SS:[EBP-1C]

independiente el serial no alteraria pues el and seria el creador de un valor valido

para decir que existe una solucion con user y serial se complica mucho
por eso preferi nopear 2 incrementos
y sobre todo no alterar el salto
que proviene de la comparacion de
0040216E   . 66:85F6        TEST SI,SI


00402180   . 74 44          JE SHORT Crackme_.004021C6


ahora muchos diran que tiene de extraño la linea, y cual es el truco''
0040213F   . 23F0           AND ESI,EAX

0040216E   . 66:85F6        TEST SI,SI 2 valores identicos
si tengo 1 y 1 no saltara pues je esta condicionado al 0
si tengo 0 y 0 saltara
si tengo -1 y -1 no saltara

si tengo un valor trucho /xplotable /yo mal hecho
---------------------------
Proyecto1
---------------------------
Run-time error '94':

Invalid use of Null
---------------------------
Aceptar   
---------------------------


saludos y listo, ya me aburri de ver mas opciones del crackme
0040211A   . 68 AC184000    PUSH Crackme_.004018AC                   ;  UNICODE "Q54refG4s3dH45" ->supuesto valor de serial o bien un serial a tomar en base

0040212C   . 68 94184000    PUSH Crackme_.00401894                   ;  UNICODE "desnight" -Z nombre ?

saludos
que pienso entonces que el je deberia ser jne lo mas probable :S o bien el push a desnight deberia haber sido en mayusculas
*aun falta comprobar las teorias, falta ver la realidad
pero para apunte a cualquiera espero le ayude




Gevaudan

Yo voy a quedar otra opcion, creo que bastante sencilla:

- Abrir con Ollydbg

- Le damos al boton derecho y seleccionamos busar por todas las referencias :


- Una vez ahi encontramos el mensaje de error que nos muestra cuando metemos algun nombre y numero:



- Hacemos doble click en el y nos llevara a la siguente direccion:



Como vemos algo mas abajo tenemos la llamada para mostrar el mensaje de error  (rtcMsgBox). Pero vemos que mas arriba tambien tenemos una llamada, veamos de que es:



- Como podemos comprobar, es la llamada al mensaje de "buen chico" que tenemos algo mas arriba. Justo encima de este mensaje vemos que tenemos un salto al cual si quereis comprobarlo le poneis un BreakPoint y vereis como nos manda a la zona de chico malo, a si que lo que haremos sera editarlo ( marcando y dando a la barra espaciadora ) para poner el contrario:



quedando de la siguente manera :


ya que de esa manera al poner cualquier nombre/codigo ( menos el correcto ) nos mandara a la zona de chico bueno.

Ahora ejecutamos el crackme y metemos cualquier dato:



Y vemos el resultado



Espero que hos haya servido, no tengo demasiados conocimientos pero espero ir compartiendolos, un saludo

Cuantas veces con el semblante de la devocion y la apariencia de acciones piadosas engañamos al diablo mismo.

karmany

#6
Gracias apuromafo y Gevaudan por la colaboración y resolución del crackme.
Correctamente crackeado.

PD. Yo le daba vueltas al hecho de si es posible que exista realmente una contraseña válida.. pero yo también me he cansado de buscar soluciones.
Me explico para los que no lo entienden:
Aparte del serial que está claramente, el nombre que nosotros insertamos lo pone en mayúsculas(karmany --> KARMANY) y posteriormente lo compara exactamente con desnight (KARMANY != desnight). Por este hecho parece ilógico que haya un nombre-serial correcto..

Si alguien encuentra nombre-serial para registrarlo será bienvenido. ;D