¿Cómo pueden los programadores y hackers crear un jailbreak y crackear aplicaciones para IOS?

Es ingeniería inversa hasta la médula. Buscan exploits, fallos sospechosos y luego buscan la causa. A veces la causa puede ser realmente explotable (como un desbordamiento de algún tipo en algún lugar).

Explicarte los detalles está más allá del alcance de esta respuesta, pero la gente que hace esto realmente sabe lo que está haciendo. Tienen la depuración como mejores amigos, y pasan mucho tiempo haciéndolo

Aquí, para que te hagas una idea de lo complejo que puede ser esto, lee esto:

Dentro de Evasi0n, el Jailbreak más elaborado para hackear tu iPhone - Forbes

Uno de los chicos detrás de Evasi0n explica algunos de sus exploits, entre ellos:

Evasi0n comienza ejecutando libimobiledevice, un programa que sustituye a iTunes para comunicarse con los dispositivos iOS a través del mismo protocolo que el programa de Apple. Utilizando esa herramienta, Evasi0n aprovecha un fallo en el sistema de copias de seguridad de los móviles de iOS para acceder a ciertos ajustes a los que normalmente no debería poder acceder, concretamente a un archivo que indica la zona horaria del dispositivo.

El programa de jailbreak inserta un "enlace simbólico" en ese archivo de zona horaria, un acceso directo desde un lugar de un sistema operativo a otro. En este caso el enlace lleva a un determinado "socket", un canal de comunicación restringido entre diferentes programas que Wang describe como una especie de "teléfono rojo a Moscú." Evasi0n altera el socket que permite a los programas comunicarse con un programa llamado Launch Daemon, abreviado launchd, un proceso maestro que se carga en primer lugar cada vez que un dispositivo iOS arranca y que puede lanzar aplicaciones que requieren privilegios de "root", un paso más allá del control del sistema operativo que los usuarios tienen por defecto. Eso significa que cada vez que se ejecuta la copia de seguridad móvil de un iPhone o iPad, automáticamente concede a todos los programas acceso al archivo de zona horaria y, gracias al truco del enlace simbólico, acceso a launchd.

También tienes esto, detalles sobre cómo funcionaba el ya desaparecido JailbreakMe explotando una vulnerabilidad del PDF:

JailbreakMe 3.0: ¿Cómo funciona? | TechHive

JailbreakMe se presentó por primera vez allá por 2007 para iOS 1.1.1. Inicialmente aprovechaba una vulnerabilidad de renderizado TIFF en Safari, que fue rápidamente parcheada por Apple en iOS 1.1.2. La versión 2.0 utilizaba una vulnerabilidad similar en el renderizado de PDF de Adobe en iOS 3 (e incluso estaba presente en iOS 4 cuando se lanzó por primera vez), pero fue de nuevo parcheada por Apple con iOS 4.0.2. La versión 3.0 aprovecha una vulnerabilidad diferente en el sistema de renderizado de PDF de Safari. Una vez más, Safari carga un archivo PDF hackeado que contiene un código oculto de jailbreak que se inyecta en el sistema de archivos raíz de su iDevice- todo desde un sitio HTTP normal y corriente.

En cuanto a su segunda pregunta, crackear la mayoría de las aplicaciones no es demasiado difícil. En última instancia, depende de cuántas comprobaciones de seguridad añadan los desarrolladores y de algunos otros factores. En pocas palabras, el binario (formalmente conocido como mach-o en el mundo de OS X) siempre está encriptado, pero tiene que ser descifrado antes de poder ser ejecutado en cualquier dispositivo. Normalmente, el dispositivo "comprueba" si el usuario está autorizado a ejecutar una determinada aplicación antes de cargarla en la memoria. A continuación, la desencripta en tiempo de ejecución y está lista para funcionar. Los hackers se aprovechan del hecho de que el binario se desencripta en tiempo de ejecución porque les permite volcarlo y analizarlo a su antojo. El mach-o se compone de una cabecera y sus datos, y la cabecera contiene información sobre el binario, incluyendo cosas como dónde "empieza" el programa, etc. Así que todo lo que hacen los crackers es analizar el dump (hecho con la línea de comandos otool) y cambiar algunas cosas de la cabecera para poder ejecutar la aplicación sin permisos.

Estoy corto de tiempo, así que no puedo darte enlaces sobre fuentes informativas sobre cracking de aplicaciones, pero esos son los básicos.