Este curso destina-se a ajudar qualquer pessoa que queira começar a aprender sobre segurança em aplicativos iOS, entendendo o básico de manipulação em tempo de execução e binary patching. Como o público-alvo é de iniciantes e talvez pesquisadores intermediários/desenvolvedores/engenheiros/etc, não há pré-requisitos obrigatórios. No lugar disso, segue uma lista de nice-to-have (é-bom-ter) ou conceitos recomendados e ferramentas que podem ajudar a navegar mais facilmente pelos próximos módulos:
- Conhecimento básico em SSH
- Entendimento básico de Objective-C e Swift
- Conhecimento básico em Javascript
- Conhecimento básico em HTML
- Entendimento básico de ataques Man-in-the-Middle
- Um computador, idealmente um MacBook: todo o material abordado aqui foi criado usando um MacBook, mas quase todas as ferramentas utilizadas possuem uma versão Windows ou alternativa, exceto Xcode
- Cabo Lightning: um cabo para conectar seu iPhone ao seu computador. Evite usar cabos Lightning para USB-C, especialmente os que vêm nas caixas do iPhone's, porque já foram detectados problemas na utilização desse tipo de cabo para execução de jailbreak, por exemplo. Procure usar cabos Lightning para USB-A ou cabos de terceiros.
- iPhone com jailbreak: para dispositivos com processador A11 ou anteriores (no caso, iPhone X ou anteriores), é fortemente recomendado o uso do checkra1n, independente da versão do iOS. Caso contrário, dê uma olhada nas opções oferecidas pelo unc0ver.
Além disso, para manter as expectativas em ordem, aqui vai uma lista do que não será coberto por esse curso (pelo menos não nessa ou em uma versão próxima, mas talvez num futuro mais distante).
- Exploração do iOS (o sistema operacional)
- Exploração do backend de aplicativos mobile
- Entendimento profundo sobre assembly ARM
Não se preocupe se você não tiver um dispositivo com jailbreak em mãos. Ainda assim, há muita coisa que você pode aprender nesse curso. O que não for possível, pode pular e voltar depois