Rompiendo barreras con fines educativos

El otro dia encontré un programa bastante curioso. Siempre me han hablado de que los programas que hay para crear imágenes panorámicas son un poco chungos. Dicen que hay que hacer las fotos calculando bien las distancias, sin moverse, colocarlas e indicar dónde deben enlazar.

«>image

Autostitch es diferente. Haces fotos a voleo, sin orden ni concierto, y se las entregas. Y lo hace. Mira el ejemplo de la misma web y no lo crees haz la prueba. No pondré aquí la prueba que yo hice porque no quería que fuese el motivo central de este comentario.

El motivo central viene a raíz del programa, y de su condición de demo que caduca en el tiempo. Un compañero de trabajo lo vio y lo comento con su hermano que por lo visto es aficcionado a la fotografía. Su hermano, según nos ha contado, se desanimó un poco cuando vio la palabra DEMO, porque el programa deja de funcionar cuando pasa determinada fecha. Supongo que el motivo es que el autor quiere venderlo o algo cuando lo tenga terminado si ve que el producto promete. No lo sé, la verdad.

image

Ahora es cuando entra en juego el título del comentario: Fines educativos.
¿Qué pasaría si con fines educativos intentasemos evitar esta limitación? De la licencia no dice mucho. Y la verdad es que no me he puesto en contacto con el autor, de modo que no sé si es ilegal lo que estoy haciendo, con fines educativos y sin ánimo de lucro, que parece que ahora está de moda decir eso.

La verdad es que no tiene mucho mérito porque ni está comprimido el ejecutable, ni está encriptado, ni tan siquiera usa código de ningún modo con intención de proteger el sistema de protección. Sí, muchas veces es mucho más efectivo proteger el sistema de protección que el sistema en sí mismo.

Abrimos el OllyDbg y cargamos el ejecutable. Ahora toca pensar un poquito. ¿Por dónde empezamos? Bien, lo normal será que nos salga un mensaje diciendo que ha expirado. Podemos intuirlo o podemos símplemente cambiar la fecha del sistema y ver el mensaje que realmente aparece :-)

Ahora buscamos las cadenas de texto a las que se hace referencia con ayuda del OllyDbg. Vemos que lo encontramos rápidamente, como se puede apreciar en la siguiente imagen (clic para ampliar):

«>image

En la captura se puede ver la parte del código que carga «Demo expired…». Si subimos un poquito podemos apreciar que se hace una llamada a GetSystemTime de KERNEL32, posteriormente una carga manual de una fecha de caducidad (ininteligible para mí pero veremos que nos da igual), y después de la comparación un salto condicional.

Echándole un mínimo de sentido común, podemos suponer que si la fecha del sistema es mayor que la que se carga a mano, el resultado del salto condicional:

JBE SHORT autostit.004040AD

será tal que el código siga por ahí y el salto no se realice. Entonces se carga la cadena de texto de Demo expired…, se muestra la ventana y finaliza el programa. Básicamente esa es la idea.

¿Qué nos interesa entonces? Pues saltar, como el caballito jeje. Bastará con cambiar el JBE por un salto incondicional. Independientemente de la fecha del sistema, de la fecha puesta a mano y del resultado de la comparación de ambas, siempre seguirá la ejecución del programa adelante y nunca expirará nuestra copia. Pues manos a la obra. Cambiamos el salto por un JMP SHORT y dejamos activada la opción de rellenar con NOOPs, aunque no es necesaria porque ocuparán los mismos bytes… Cambiando esto vemos que el código de la instrucción cambia desde 76 16 a EB 16.

Solo nos resta ir a nuestro editor hexadecimal favorito, abrir el ejecutable, acceder a la dirección de memoria donde está el byte a cambiar, y cambiarlo. Una vez cambiado se guarda y listo. Ya tenemos nuestra copia del programa que no caduca en el tiempo.

«>image

Tan solo fue con fines educativos y por supuesto sin ningún ánimo de lucro de ningún tipo. El uso que hagas de la información es responsabilidad tuya, únicamente.

Archivado en:Sin categoría

No hay comentarios en “Rompiendo barreras con fines educativos”

  • enlavin dijo:

    Ohhh, que recuerdos de mis tiempos de ensamblador :D

    Y esas herramientas que comentas son muy pero que muy útiles, hmmmm ;)

    Mostro!

  • Arkangel dijo:

    Además, artista del crackeo fino ;-)

    Yo usé alguna vez el OllyDbg, pero más para ver que para actuar… La verdad es que si el autor no se ha preocupado de evitarlo, es que lo pone a güevo, como quien dice. Para los que sabeis, claro.

    Autostitch hace cosas increibles, doy fe. Ese efecto de ojo de pez que le da a los resultados si redondeas la panorámica le da un toque muy chulo.

  • nauj27 dijo:

    enlavin: los recuerdos de los buenos momentos son los que me han hecho meterle mano al programita realmente :)

    Arkangel: Sí, a ver si hago unas cuantas fotos chulas con el programita y las ponemos también por aquí ;-)

  • Navajo dijo:

    Estos son mis post favoritos, pero he de decirr que la recuperación de aquel disco que hiciste me pareció muy intructivo… ére un crá killo.