Learning resource
Reverse Engineering iOS Applications
Ivan Rodriguez's free English course (version 1.1) on reverse engineering iOS applications, aimed at beginners in iOS app security. Five Markdown modules cover setting up a jailbroken test device, decrypting App Store apps for analysis, static analysis of an IPA's files, frameworks, Objective-C classes and ARM binary in Hopper or Ghidra, runtime analysis with Cycript and Frida, and binary patching in Hopper. Exercises use CoinZa, a deliberately insecure Objective-C app the author built from vulnerability classes he reports finding in production App Store apps.
Requirements & limits
- Reviewed at commit 183873a (2024-04-17). The course was written mainly in 2019; commits since mid-2020 are a few small wording and command fixes. Device instructions cover iOS 10 through 12, and many setup tools are from that period, so they may not work on current devices. The introduction excludes jailbreaking, iOS exploitation, tweak development, backend API testing and in-depth ARM assembly.
- The prerequisites page lists no mandatory knowledge but recommends a Mac (Xcode has no Windows alternative), basic Objective-C, Swift, JavaScript, HTML, SSH/SCP and man-in-the-middle concepts, and an ARM disassembler such as Ghidra, IDA or Hopper's trial. A jailbroken iPhone/iPad/iPod on iOS 10 or later is needed only for the decryption module and the Cycript and Frida exercises.
- No third-party app is needed for the exercises: the author ships CoinZa as an already-decrypted IPA, plus an EPUB of the course, in the companion repository RE-iOS-Apps-Extras-Github. The README says its vulnerabilities come from production apps but are reproduced in CoinZa instead of being published against those apps, and the closing page asks readers to report vulnerabilities responsibly.
- There is no separate license file; the README carries an MIT-style permission notice (Copyright 2019 Ivan Rodriguez) and an at-your-own-risk disclaimer; the closing page asks people who reuse the material to credit the author. This collection read the course pages at the reviewed commit and did not install CoinZa or follow the device steps; the course mentions no AI or REA use.
About this entry
- Type
- Learning resource
- Category
- Learning resources
- Relationship
- Learning resource
- Targets
- App · Binary
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · ivRodriguezCA/RE-iOS-Apps · Revision 183873a
- Prerequisites.md GitHub · ivRodriguezCA/RE-iOS-Apps · Revision 183873a
- Introduction.md GitHub · ivRodriguezCA/RE-iOS-Apps · Revision 183873a
- Module-1/README.md GitHub · ivRodriguezCA/RE-iOS-Apps · Revision 183873a
- Module-3/README.md GitHub · ivRodriguezCA/RE-iOS-Apps · Revision 183873a
- Module-4/README.md GitHub · ivRodriguezCA/RE-iOS-Apps · Revision 183873a
- Final-Thoughts.md GitHub · ivRodriguezCA/RE-iOS-Apps · Revision 183873a
- Files GitHub · ivRodriguezCA/RE-iOS-Apps-Extras-Github · Revision 19ec1d2
More in References and learning
- tiny-dec · Learning resource
- Reverse Engineering Reading List · Learning resource
- Decomp Academy · Learning resource
- OWASP Firmware Security Testing Methodology (FSTM) · Learning resource
- Installation and client setup · Documentation
- CLI and Evidence · Documentation