Sto costruendo un'app per iOS che trasmette dati sensibili al mio server e sto firmando le mie richieste API come misura aggiuntiva. Voglio rendere il reverse engineering il più difficile possibile, e avendo usato Cycript per trovare le chiavi di firma di alcune app del mondo reale, so che non è difficile trovare queste chiavi collegandole a un processo. Sono assolutamente consapevole del fatto che se qualcuno è veramente abile e cerca abbastanza difficile, alla fine lo sarà exploit, ma sto cercando di renderlo il più difficile possibile, pur rimanendo conveniente per me stesso e gli utenti.Rileva se Cycript/Substrate o gdb è collegato al processo di un'applicazione iOS?
Posso controllare lo stato di jailbroken e adottare misure aggiuntive, oppure posso eseguire il blocco SSL, ma entrambi sono ancora facili da aggirare collegando al processo e modificando la memoria.
Esiste un modo per rilevare se qualcosa (sia che si tratti Cycript, gdb, o qualsiasi strumento simile che può essere utilizzato per il cracking del processo) è collegato al processo, pur non essere stato respinto da App Store?
MODIFICA: Questo non è un duplicato di Detecting if iOS app is run in debugger. Questa domanda è più correlata all'output e controlla un flusso di output per identificare se c'è un flusso di output collegato a un logger, mentre la mia domanda non è correlata a quello (e tale controllo non copre le mie condizioni).
Eventuali duplicati di [Rilevare se app iOS viene eseguito in debugger] (http://stackoverflow.com/questions/4744826/detecting-if-ios-app-is-run-in-debugger) – Petesh
@ Petesh no, vedi la mia modifica. –
Sembra essere esattamente * quello che stai chiedendo: utilizza sysctl per verificare se il processo viene tracciato, che è ciò che accade quando esegui un processo con un debugger o ne hai uno collegato mentre sei in esecuzione. – Petesh