When my interest started moving towards security rather than development I didn't know where to start. This repository is for people like me who need guidance in the field of iOS security. Most guides tend to lean towards the following path structures.
- Learn C / ARM Assembly (learn together).
- Understand iOS internals.
- Learn common exploit techniques and tools.
- Read on how previous jailbreaks work and try to create one from scratch.
Learning C
- If you have minor C experience, try this
- How to write C in current years
- The book I used to learn C.
My personal tip: Build something with C. Maybe start small and build a string reverser, then grow until you think you've learned enough to read other peoples code. If you are in university, take operating system courses and others that teach and/or use C/C++.
Learning ARM
- The holy grail of learning ARM imo.
- Arguably long but very rich tour of ARM.
- A Ray wenderlich tutorial
- Ray wenderlich has some interesting and useful (althought a bit pricey) books on reverse engineering as well.
My personal tip: BUILD SOMETHING with ARM. Write a for loop and look at the underlying instructions, call functions and see how branching works, follow the azeria labs introduction until the end. If you are in university, take courses that teach assembly, most of which are taught by the computer engineering departments or EE.
Other useful links
Books
- *OS internals by Jonathan Levin, holy grail of internal iOS & MacOS information
- ARM exploitation by Billy Ellis
Motivation
This will get updated periodically once my knowledge increases and I become a more advanced researcher. If you are a true beginner, try to avoid the later useful links and start with C and ARM, and once you know you are proficient, start looking at the later links.
Also buy a test device, iPhone 4 or 4s is perfect for a 32bit device (which you can learn A LOT on) and you can buy them off eBay for < $75. Assuming you're reading this after 2018, you probably have a 64bit device (Anything after iPhone 5c).