Cita de: kenrhad en 17 Junio 2008, 05:35 AM
Perdon por no saberme expresar, pero en verdad no queria que me crackearan el programa, solo queria que me orientaran sobre como buscar y eso, dado que ustedes ya crackearon el programa pero yo por ejemplo estoy en blanco, no se como buscar, ni como llegaron a esa cadena o direccion.
Espero me ayan entendido esta ves.
Gracias por todas sus respuestas
A ver una cosita.No se si te habrá quedado clara la explicación que te acaba de dar Shadow de cómo encontró el lugar idóneo para simular estar registrado.Si es que sí esta explicación más extendida de lo que hice yo, igual te sobra...o no.
Tú deberías saber que esto del cracking es como el cuento del gato y el ratón.El programador intenta esconder el punto débil de su protección.Hace ya un tiempo que están aprendiendo a despistarnos.Cada vez vemos menos direcciones de memoria fijas, claramente visualizadas en el desensamblado y por eso usan el direccionar posiciones de memoria "calientes" de manera indirecta, con lo cual aparecen relacionadas con registros más un desplazamiento.
Debemos acostumbrarnos a esta "nueva" situación.
La zona que más "canta" es en la que se ve claramente como nos proclama *UNREGISTERED*, aqui:
00497672 mov edx,Rubik.004978E8 ; ASCII " *UNREGISTERED*"
Si nos lo pone es porque sabe que no estamos registrados.¿Y cómo lo sabe?.Pues muy fácil.Lo descubre un poco mas arriba en el código, aqui:
0049765C cmp byte ptr ds:[eax+26],0
00497660 jnz short Rubik.004976C1
Si es diferente de cero, el valor que hay dentro de [eax+26], es que estamos registrados y no nos saldrá el *UNREGISTERED* en la barra del título, porque saltará a 004976C1.
¿Y que hay dentro de [eax+26]?.Pues en este caso hay escrita esta dirección de memoria 00AB434A.El valor que contiene esa dirección es lo único que tenemos que vigilar, que en principio, como te dijo Shadow, lo pone a cero.Nosotros debemos hacer lo imposible para que valga siempre 1, porque consulta lo que hay dentro de esa dirección en varios lugares del código (disfrazada con otros nombres de registro) y en este caso nos la cambia en un momento determinado.
Lógicamente has de saber usar el Olly u otro debugger, con cierta soltura.
Que te sirva de consuelo que todos hemos empezado como tú; es decir, haciendo preguntas después de estrellarnos una y otra vez.
Sigue preguntando, que no nos molestas para nada.
Saludos,
Mintaka