Cracking 101 - Capítulo 1.1

Por Cesar, Agosto 7th, 2008, en cracking. 2 Comentarios.

Capítulo 0

Introducción
Cracking es sobre eliminar restricciones impuestas a un programa cuando no se tiene el código fuente original. Lo anterior puede ser tan simple como una verificación que nos forza a comprar un programa después de X número de días, o tan noble como agregar funcionalidad que necesitamos a un programa del cual no tenemos su código fuente y el autor por alguna razón no está disponible para hacer los cambios. Sea cual sea el motivo, todo se reduce a encontrar esa restricción y eliminarla. Esto nos lleva al tema principal de este capítulo: tipos de restricciones y aproximaciones para eliminarlas.

Si se tiene experiencia en Windows más temprano que tarde te topas con los llamados Shareware, aunque solían ser más populares a mediados de los 90’s. Este tipo de programas te ofrecen una versión de prueba, generalmente con algunas restricciones impuestas. Si el programa te gusta, lo puedes comprar para eliminar las restricciones. Cuando el programa deja por fuera algunas características que si se incluyen en la versión final entonces es un Demo. La diferencia entre Demo y Shareware es que el primero simplemente no incluye la funcionalidad, mientras que el Shareware si incluye la funcionalidad pero es restringida de una u otra forma. Seguir leyendo

Super Monkey Ball para iPhone crackeado

Por Cesar, Julio 28th, 2008, en gadgets, hacks, cracking. No hay comentarios.

Uno de los juegos más populares de la Application Store del iPhone es el Super Monkey Ball de Sega, por el que se tiene que pagar la módica cantidad de $10 dlls. Pues bien, resulta que un grupo de hackers se ha encargado de eliminar el DRM de las aplicaciones que se venden en la App Store (FairPlay, el mismo que usan en iTunes) resultando en aplicaciones y juegos que cualquiera puede instalar en su iPhone, compartir con otros, etc.

¿Y cómo le hago? Simple. Aquí les muestro los pasos para GNU/Linux:

  1. Descargar Super Monkey Ball crackeado
  2. Instalar SSH en el iPhone, por medio de Cydia. De una vez instalar Toggle SSH que nos facilitará las cosas
  3. Una vez instalado SSH, reiniciar el iPhone
  4. Descomprimir el zip de SMB. En este caso uso de ejemplo /home/usuario/juegos/. Al descomprimir te crea una carpeta Monkey Ball.app. Eliminen el espacio del nombre para que quede MonkeyBall.app
  5. Para transferir al iPhone, en la consola: scp -v -r /home/usuario/juegos/MonkeyBall.app/ root@ip-del-iphone. El password por default de SSH es alpine
  6. Asegurarnos que los permisos sean 755 (por default así es). Nos podemos conectar por ssh: ssh root@ip-del-iphone y verificarlo (con ls -al)
  7. Crear (por medio de SSH de nuevo) la carpeta Documents en /var/mobile y darle permisos 777 (chmod 777 /var/mobile/Documents)
  8. Reiniciar el iPhone, aparece el ícono de Super Monkey Ball. Si todo esta bien utilizar ToggleSSH para detener el daemon de SSH
  9. Enjoy

Cracking 101 - Capítulo 0

Por Cesar, Mayo 7th, 2008, en cracking. 7 Comentarios.

A petición popular me dispuse a crear otra serie de escritos dedicados al cracking, no como actividad ilegal, sino como el arte que es. ¿Porqué lo hago? la respuesta en sí es sencilla: Por que me gusta crackear. Pero hay otras razones de peso:

  • Muchos de los tutoriales en español disponibles son muy antigüos, y aunque la información sigue siendo válida, a veces es difícil conseguir las herramientas de las que hacen uso, o la versión exacta del programa víctima que usaron
  • Hay un interés por mejores tutoriales, mejor escritos y más accesibles a los usuarios novatos
  • En su tiempo recibí muy buenos comentarios sobre mis propios tutoriales, lo que me lleva a pensar que tal vez tengo algo de talento en eso

Antes de que se quieran poner a crackear sus programas favoritos, hay que estudiar lo que hay detrás de un programa. Es muy similar a tocar la guitarra: uno quiere agarrar la guitarra y tocar Stairway to Heaven, y con la suficiente práctica sucederá, pero tenemos que empezar por unos sencillos acordes primero. Todo es parte del proceso. Aún así, en este tutorial #0 voy a ilustrar la teoría utilizando un programa real, ejecutándose bajo un debugger.

Hay algunos conceptos que tenemos que revisar antes de comenzar a crackear. Algunos parecerán obvios, otros no tanto. Lo importante es tener la cabeza despejada, abrir la mente y comprender cada uno de los detalles. Uno de los conceptos clave es saber cómo se ejecuta un programa en la computadora. Esto nos ayuda a saber cómo atacar al programa. Un programa típicamente se guarda en memoria no volatil, es decir, memoria que se mantiene aún cuando se apaga la computadora (como el disco duro, memoria flash). Cuando el programa se ejecuta, este se copia a la memoria RAM, ya que de ahí el CPU puede accesarlo de manera directa. El CPU ejecuta el programa instrucción por instrucción. Como podemos ver, aún cuando la computadora se compone de múchos subsistemas, el que nos interesa para crackear es el CPU, ahí es donde ocurre la magia.

Para crackear, necesitamos entender cómo es que el CPU ejecuta el programa, el problema es que el CPU entiende instrucciones binarias solamente. Binario es muy conveniente para una máquina ya que es muy fácil de representar por hardware los dos estados (0 y 1), pero no lo es para nosotros y por eso necesitamos lenguajes de más alto nivel. El lenguaje que le sigue al lenguaje máquina es el llamado “ensamblador”. Cada familia de procesadores tiene su propio lenguaje ensamblador. En nuestro caso, necesitamos entender lenguaje ensamblador para el x86.

Algo que sería buena señal es que en estos momentos ya tienen en sus manos un manual para ensamblador x86, o mejor aún, ya lo estudiaron de alguna manera. Como recomendación personal está el libro “The Art of Assembly“. No es específico de cracking, e introduce un concepto de ensamblador de “alto nivel” que podría confundir a algunos, pero tiene una sección que deben leer titulada “Una introducción a la familia de CPUs 80×86 de Intel“. Del lenguaje ensamblador no necesitamos todo, aunque entre más sepas del lenguaje, más se te facilita tu tarea. Lo básico son algunas instrucciones con las que se van a topar al inicio: instrucciones de salto, comparaciones, movimiento de datos, llamadas a funciones y lo referente a la pila (es decir, stack, no pila de batería). Como primer ejercicio, vamos a revisar algunas de estas instrucciones: Seguir leyendo

Comentarios Recientes

Los autores

Creative Commons

Paskola Estudio Creativo
Help the authors