This repo is mostly my study notes about low level iOS.
- Mach-O Parser - writing a Mach-O format parser while learning it
- LC_SEGMENT_64 - segments and sections
- LC_SYMTAB - symbol table
- LC_DYSYMTAB - dynamic symbol table
- LC_DYLD_INFO(_ONLY) - information for dyld
- LC_DYLD_CHAINED_FIXUPS - the new way to encode dyld info
- LC_DYLD_EXPORTS_TRIE - the new command for exported symbols
- LC_DYLD_ENVIRONMENT - embed environment variables in the binary
- LC_LINKER_OPTION - auto linking
- LC_BUILD_VERSION - platform requirements
- LC_MAIN - the entry point of an executable
- LC_ENCRYPTION_INFO_64 - FairPlay encryption
- LC_FUNCTION_STARTS - function addresses
- LC_*_DYLIB and LC_RPATH - dylib related load commands
- LC_CODE_SIGNATURE - code signing and code signature format
- Building
- Build iOS App - build and debug an iOS app without an IDE
- Build Swift Macros
- Mixed Language Compiling
- Module Map - common formats of
module.modulemap
- Import Search Path - how import search path (
-I
) affects build time - Swift Generated ObjC Header
- Dead Code Elimination
- Swift Source Info (
.swiftsourceinfo
)
- Dynamic Linking
- How does dynamic linking works
- Exported Symbols - details of how exported symbols are stored
- Binding Info - details of binding opcodes
- Chained Fixups - the new way to store dyld info
- Dynamic Interposing - replace function implementation at runtime
- Testing
- Xcode