Crackme ¿Eres capaz de resolverlo?

Iniciado por Mad Antrax, 16 Enero 2013, 18:10 PM

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

Mad Antrax

Cita de: apuromafo en 16 Enero 2013, 21:37 PM
si, force la string de correcto :D lee lo anterior
(aqui escribe ya en casi su totalidad en la direccion 406040)

me quedo con "muy bien "  gracias por tu crackme

, si no es la solucion correcta, pues animo, todos miramos de diferente forma los crackmes

Bueno, te explico:

Lo que has hecho es cambiar el mensaje de incorrecto por correcto, eso podría parecer una buena forma, pero si miramos de forma más global, tu ejecutable parcheado jamás entra en la zona de código que muestra el mensaje correcto.

Si en lugar de mostrar un mensaje, el crackme tuviera que registrar el programa (escribir en el registro, generar un keyfile o lo que sea) jamás se ejecutaría, me explico? Sencillamente tu solución ejecuta la sección de código "malo", pero la string que muestra pone "correcto", así que, sintiéndolo mucho, no has superado el crackme :(

Has avanzado mucho, tienes el exe descomprimido, solo te falta debuggear un poco más :P
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

Karman

#11
Es la primera vez que crackeo un programa visual basic... y la verdad es una bost*** :P, me pierden esas funciones raras... de todas formas, (a pesar de nunca haber tocado un programa en VB) creo que encontré la solución... el punto a controlar es:

Citar00403D12 CALL NEAR DWORD PTR DS:[40106C] ; msvbvm60.__vbaStrCmp

Si prueban con varios strings base va a ver que el algoritmo es muy simple... la clave es: batman (el autor entenderá :P)

S2

PD: Este es mi mensaje Nº 666 (coincidencia? :P)

MCKSys Argentina

Bueno, lo he mirado y está divertido. Lo recomiendo para quienes se están iniciando, como práctica.

Por lo pronto, algunos datos:

1) Para desempacar el exe original, recordar lo básico sobres los EP de los EXEs hechos en VB5/6 (El runtime es la clave para llegar al OEP! (y para restaurarlo)).

2) Una vez desempacado el primero, basta con revisar un poco el código para ver que está sacando el segundo EXE de los recursos. (CUSTOM)

3) Por último, para desempacar el segundo EXE, es sencillo, y la técnica de PUSHAD-POPAD es suficiente (Por cierto, el packer usado es MPRESS: http://www.matcode.com/mpress.htm)

Luego, basta con seguir el código. Para esto, nos podemos valer de VBDecompiler o mejor aún, usar los puntos magicos de VB (en el caso de VB6, hay que buscar F3A5FFD08BE55D8945FC8B45FC5F5EC9C20C00)

Por las dudas, como se dijo antes, se usa StrCmp para comparar el serial cifrado con el serial correcto (cifrado tambien).

La tecnica de encriptacion usada es caesar y se distribuye asi:

abcdefghijklmnopqrstuvwxyz
fghijklmnopqrstuvwxyz{|}01

Como es evidente, poniendo un BP en msvbvm60.__vbaStrCmp vamos a ver ambos strings y usando el alfabeto anterior sale la password, la cual es: un superhéroe con capa roja.

Como dije antes, está bueno para practicar.

Saludos!

PD: Por las dudas, si alguien lo quiere ver desde cero, dejo referencias sobre VB:

Disassembling Visual Basic Applications por Sanchit Karve
Visual Basic Image Internal Structure Format por Alex Ionescu
Visual Basic Reversed - A decompiling approach por AndreaGeddon
Teorías sobre VB de la web de Ricardo Narvaja (www.ricardonarvaja.info)
-Teoría 011-Olly y Visual Basic por COCO
-Teoría 012-Olly y Visual Basic 2 por COCO
-Teoría 061-Olly y Visual Basic 3 por COCO
-Teoría 190-Olly y Visual Basic 4 por COCO
-Teoría 235-Punto Magico VB6 por ARAPUMK
-Teoría 236-Punto MagicoII VB6 por ARAPUMK
-Teoría 242-OEP en VB por ARAPUMK
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Mad Antrax

Completamente correcto

VB6 tiene muchas debilidades para el tema de crackme's, los tipo serialme basta con buscar StrCmp ya que el 90% de casos se utilizará dicha función.

Bien jugado, ya como dije, era un crackme sencillito

Felicitaciones :D
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

apuromafo CLS

bueno ya todo esta dicho el +5 es caesar ( el a es f por:  a+1=b  a+2=c a+3=d a+4=e a+5=f  )

string1: xzujwrfs

Citar
La tecnica de encriptacion usada es caesar y se distribuye asi:

abcdefghijklmnopqrstuvwxyz
fghijklmnopqrstuvwxyz{|}01


por lo cual es claro cual es el superheroe de la capa roja y traje debil a kriptonita



la primera vez escribi ese nombre, y luego intente parcharlo buscando no sep, el mensaje..no el algoritmo primero, pero lo que es interesante ver que no es facil parcharlo y que igual dira el mismo mensaje ;) , aunque no sea la mejor forma

posiblemente otra idea seria parcharlo a modo que siempre que ingresen un serial este sea la variable cifrada?, o bien que siempre ingrese el serial correcto..o  olvidarse de el caption y editar para que siempre este escrito la palabra..
no se, son varios caminos que se ocurren
saludos Apuromafo