E' ingegneria inversa fino al midollo. Cercano exploit, crash sospetti e poi cercano la causa. A volte la causa può essere davvero sfruttabile (come un overflow di qualche tipo da qualche parte).
Esplicitare i dettagli è oltre lo scopo di questa risposta, ma le persone che fanno questo sanno davvero cosa stanno facendo. Hanno il debug come migliore amico, e passano molto tempo a farlo
Qui, per darvi un'idea di quanto possa essere complesso, leggete questo:
Inside Evasi0n, The Most Elaborate Jailbreak To Ever Hack Your iPhone - Forbes
Uno dei ragazzi dietro Evasi0n spiega alcuni dei loro exploit, compresi:
Evasi0n inizia eseguendo libimobiledevice, un programma che sostituisce iTunes per comunicare con i dispositivi iOS attraverso lo stesso protocollo del programma Apple. Utilizzando questo strumento, Evasi0n sfrutta un bug nel sistema di backup mobile di iOS per ottenere l'accesso ad alcune impostazioni che normalmente non dovrebbe essere in grado di accedere, in particolare un file che indica il fuso orario del dispositivo.
Il programma di jailbreak inserisce un "link simbolico" in quel file di fuso orario, un collegamento da un posto in un sistema operativo ad un altro. In questo caso il link porta ad un certo "socket", un canale di comunicazione limitato tra diversi programmi che Wang descrive come una sorta di "telefono rosso per Mosca". Evasi0n altera il socket che permette ai programmi di comunicare con un programma chiamato Launch Daemon, abbreviato launchd, un processo master che si carica per primo ogni volta che un dispositivo iOS si avvia e può lanciare applicazioni che richiedono privilegi di "root", un passo oltre il controllo del sistema operativo che gli utenti sono concessi per default. Ciò significa che ogni volta che il backup mobile di un iPhone o iPad viene eseguito, concede automaticamente a tutti i programmi l'accesso al file del fuso orario e, grazie al trucco del link simbolico, l'accesso a launchd.
Avere anche questo, dettagli su come funzionava l'ormai defunto JailbreakMe sfruttando una vulnerabilità PDF:
JailbreakMe 3.0: Come funziona? | TechHive
JailbreakMe è stato introdotto nel 2007 per iOS 1.1.1. Inizialmente sfruttava una vulnerabilità di rendering TIFF in Safari, che è stata rapidamente patchata da Apple in iOS 1.1.2. La versione 2.0 ha utilizzato un exploit simile nel rendering di Adobe PDF in iOS 3 (ed era anche presente in iOS 4 quando è stato rilasciato per la prima volta), ma è stato nuovamente patchato da Apple come iOS 4.0.2. La versione 3.0 sfrutta una diversa vulnerabilità nel sistema di rendering PDF di Safari. Ancora una volta, Safari carica un file PDF hackerato contenente codice di jailbreak nascosto che viene poi iniettato nel file system principale del vostro iDevice, il tutto da un normale sito HTTP non protetto.
Per quanto riguarda la tua seconda domanda, craccare la maggior parte delle app non è davvero troppo difficile. In definitiva, dipende da quanti controlli di sicurezza gli sviluppatori aggiungeranno e da alcuni altri fattori. Per dirla semplicemente, il binario (formalmente conosciuto come mach-o nel mondo OS X) è sempre criptato, ma deve essere decriptato prima di poter essere eseguito su qualsiasi dispositivo. Di solito il dispositivo "controlla" se l'utente è autorizzato ad eseguire una data app prima di caricarla in memoria. Poi la decripta in fase di esecuzione ed è pronta per essere eseguita. Gli hacker approfittano del fatto che il binario è decriptato in fase di esecuzione perché permette loro di scaricarlo e analizzarlo a loro piacimento. Il mach-o è composto da un'intestazione e dai suoi dati, e l'intestazione contiene informazioni sul binario, comprese cose come dove il programma "inizia", e così via. Quindi tutto ciò che i cracker fanno è analizzare il dump (fatto con la linea di comando otool) e cambiare alcune cose nell'intestazione in modo da poter eseguire l'app senza permessi.
Sono a corto di tempo, quindi non posso darvi link su fonti informative sul cracking delle app, ma queste sono le basi.