GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - hack-different/apple-knowledge: A collection of reverse engineered Apple things, as well as a machine-readable database of Apple hardware

BranchesTags
Open more actions menu

Latest commit

 

History

660 Commits
660 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
.idea
.idea
 
 
.vscode
.vscode
 
 
_data
_data
 
 
_docs
_docs
 
 
_includes
_includes
 
 
_packages
_packages
 
 
_plugins
_plugins
 
 
_schemas
_schemas
 
 
bin
bin
 
 
ext
ext
 
 
lib
lib
 
 
sig
sig
 
 
spec
spec
 
 
symbols
symbols
 
 
tasks
tasks
 
 
tmp
tmp
 
 
wip
wip
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
.mdlrc
.mdlrc
 
 
.overcommit.yml
.overcommit.yml
 
 
.rspec
.rspec
 
 
.rubocop.yml
.rubocop.yml
 
 
.ruby-version
.ruby-version
 
 
.style.rb
.style.rb
 
 
404.html
404.html
 
 
BUILD.md
BUILD.md
 
 
CNAME
CNAME
 
 
CREDITS.md
CREDITS.md
 
 
Gemfile
Gemfile
 
 
Gemfile.lock
Gemfile.lock
 
 
LICENSE
LICENSE
 
 
NOTES.md
NOTES.md
 
 
README.md
README.md
 
 
Rakefile
Rakefile
 
 
SECURITY.md
SECURITY.md
 
 
Steepfile
Steepfile
 
 
_config.yml
_config.yml
 
 

Repository files navigation

Apple Data Formats and Knowledge

A collection of reverse engineered Apple formats, protocols, or other interesting bits.

Join us on Discord - Discord Rules

Repo inspired by Papers we Love

Our Tooling Repos

Our Homebrew Tap

Install our tap with brew tap hack-different/homebrew-jailbreak

Information about the maintaining of that tap can be found at homebrew-jailbreak

Contributing and a warning

Linking your Discord and GitHub

We want this collection to be around for new jailbreakers and hobbyists for years to come, so we must say: this collection accepts (with gratitude) pull-requests that improve it, but under no circumstances will a PR based on AppleInternal, or any other copyrighted works protected by the DMCA be accepted. If you need help determining this, tag the PR with license help, join the Discord server, and ask a #Legit or higher role for help.

Violation of the DMCA or Copyright law is the responsibility of the submitter.

Primary Data Source

We attempt to derive from machine sources and produce machine readable files (YAML) in this repo under _data. For information about creating and extending data format see Data Format Guidance.

Updates and additions there should automatically be reflected in the documents

hack-different/apple-knowledge/_data

Another authoritative source of information is the open source code released by Apple themselves at one of the following locations:

  • Open Source at Apple Wesbite
  • Apple's GitHub profile
  • apple-oss-distributions's Github profile
  • Apple Gifts

Tools

Libraries for Binary Analysis and Modification

See docs/Binary_Tooling

Tools for Binary Analysis and Modification

  • mootool - FOSS Ruby Mach-O Tool (aims to replicate jtool2 feature set)
  • ktool - FOSS Python Mach-O Tool
  • checkra1n/toolchain
  • alephsecurity/xnu-qemu-arm64
    • alephsecurity/xnu-qemu-arm64-tools
    • Build iOS on QEMU
  • IDA Disassembler by Hex-Rays
    • onethawt/idaplugins-list
    • cellebrite-srl/ida_kernelcache
    • cellebrite-srl/PacExplorer
    • cellebrite-srl/FunctionInliner
    • hack-different/iBoot-IDA
    • matteyeux/ida-iboot-loader
    • haiyuidesu/sephelper
    • Cisco-Talos/GhIDA
    • avast/retdec-idaplugin
  • Binary Ninja Disassembler
    • cxnder/bn-dyldsharedcache
    • jonpalmisc/ObjectiveNinja
    • EliseZeroTwo/iBoot-Binja-Loader
    • matteyeux/seprom-loader
    • skr0x1c0/binja_kc
  • VisUAL ARM Simulator
  • Ghidra Disassembler
    • AllsafeCyberSecurity/awesome-ghidra
    • 0x36/ghidra_kernelcache
  • Hopper Disassembler
  • Capstone Engine
  • Unicorn Engine
  • QEMU
    • QEMU Apple Branch
    • geohot/qira
  • blacktop/ipsw
  • jtool2
  • frida

Guides and General

  • Proteas/apple-cve
  • kpwn / qwertyoruiop's Wiki
  • kpwn / qwertyoruiop's Papers
  • About Apple Prototype and CPFM
  • OWASP: iOS Tampering and Reverse Engineering
  • Kernel Debug Kit
  • *OS Internals by Jonathan Levin
  • T2 Dev Setup
  • Apple 4CC
  • bytepack/IntroToiOSReverseEngineering
  • Remote Attack Surface
  • Lakr233's Research

Devices

  • Device List
  • T2
    • T2 Dev Team: t8012 / Apple T2 / bridgeOS
    • Duo Labs: Apple T2 XPC
    • t2linux/apple-bce-drv
  • Wi-Fi / Bluetooth
    • seemoo-lab/frankenstein
    • seemoo-lab/internalblue
  • The iPhone Wiki
  • SMC (System Management Controller) for pre-T2
    • acidanthera/VirtualSMC
    • t8012/smcutil - Create SMC binaries from update payloads

Kernel General

  • Mach
    • Apple's XNU Tarballs
  • Mach and the Mach Interface Generator by nemo
  • Apple IPC by Ian Beer
  • acidanthera/Lilu
  • osy/AMFIExemption
  • Siguza's Research on KTRR
  • Tick Tock by xerub
  • Casa de PPL by Levin
  • KTRW by Brandon Azad
  • Qwertyoruiopz Attacking XNU: Part 1
  • Qwertyoruiopz Attacking XNU: Part 2
  • Kernel Heap by Stefan Esser
  • Levin's Who needs task_for_pid() anyway...
  • Apple Official Documentation
    • Kernel Programming Guide
    • IOKit Fundamentals
    • Virtual Memory System

Protocols / Formats

Bootloader Related

  • EFI
    • EFI
  • NVRAM
    • NVRAM unlock
  • SEP_memmap
  • All About Kernels
    • apple/darwin-xnu
  • Factory_Firmware_Payloads
  • iBoot
    • iBoot Firebloom
    • OpenJailbreak/iBootRE
    • *OS iBoot
  • SecureROM
    • SecureROM Binaries
  • TXM - Trusted eXecutation Monitor
    • TXM & SPTM

Archive / Disk Formats

  • APFS - Apple Filesystem
    • Apple APFS Reference
    • sgan81/apfs-fuse
    • libyal/libfsapfs
    • cugu/apfs.ksy
    • bxl1989 APFS Remount
  • LwVM Lightweight Volume Manager
  • NeXT / Apple "Bill of Materials" / pkg / bom
    • iineva/bom
  • pbzx
  • Apple Disk Image - dmg
    • jhermsmeier/node-udif
    • nlitsme/encrypteddmg
    • darlinghq/darling-dmg
  • Signed System Volumes (SSV) / root_hash

Databases / Serialization

  • Property Lists
    • libimobiledevice/libplist
  • iTunes database
    • jeanthom/libitlp
    • josephw/titl
    • https://metacpan.org/pod/Mac::iTunes::Library::Parse
  • Apple iDevice Backup Format
    • rickmark/libibackup
    • horrorho/InflatableDonkey

Image, Sound and Other Resources

  • Apple Flavored PNG
  • Apple IMA ADPCM
    • Using a Custom Startup Sound on a Power Macintosh G3 Blue and White
  • AirPlay2
    • mikebrady/shareport-sync

Software Update / Installers

  • Mobile Asset URLs
  • notpeter/apple-installer-checksums
  • ipsw.me
  • ipswbeta.dev

Code and Signature Formats

  • Mach-O File Types - Mach-O / Signing / Entitlements
    • sbingner/ldid - Codesign tool
    • ProcursusTeam/ldid - Alternative to sbingner/ldid with some updates for iOS 15 and general fixes
    • m4b Mach Binaries
    • J's Entitlements Database
    • Levin's Code Signing
    • Apple CTF / Compact Type Format
  • img4 - Apple signed images, version 4
    • TheiPhoneWiki's documentation on IMG4 files
    • xerub/img4lib
    • m1stadev/PyIMG4 - A Python library/CLI tool for parsing IMG4
    • tihmstar/img4tool
    • h3adshotzz/img4helper
  • TrustCache - Pre-authorized Binary Hashes
    • Apple Platform Security - Trust caches
    • t8012/go-aapl-integrity
    • CRKatri/trustcache
  • EALF - eficheck baselines
    • t8012/go-aapl-integrity
    • t8012/efivalidate
    • EALF
  • ChunkList - Used to verify macOS Recovery / Internet Recovery
    • t8012/go-aapl-integrity
  • dyld and DSC (dyld Shared Cache)
    • Levin's Dyld
    • rickmark/yolo_dsc - Used as last resort and depend on Xcode
    • arandomdev/DyldExtractor - Fixes up linking
    • dyld_shared_cache_util.cpp
  • iBoot LocalPolicy, RemotePolicy and BAA signing
    • M1_Boot_Policy
  • Rosetta2
    • ProjectChampollion
  • Swift
    • Swift Mangling

Sandbox or 'Seatbelt'

  • Levin's - The Apple Sandbox
  • Apple Sandbox Guide v1.0
  • OWASP - Reversing the Apple Sandbox
  • iBSparkles Breaking Entitlements
  • stek29: Shenanigans, Shenanigans!
  • argp vs com.apple.security.sandbox
  • malus-security/sandblaster

Secure Enclave Processor

  • SEP_memmap
  • sep.yaml
  • SEPROM
  • nyuszika7h/sepfinder
  • justtryingthingsout/sepsplit-rs
  • Demystifying the Secure Enclave Processor
    • Mirror of presentation
  • seputil
    • mwpcheung/AppleSEPFirmware
  • SEPOS: A Guided Tour
  • Attack Secure Boot of SEP - blackbird
  • iPhone Data Protection in Depth
  • Overcoming iPhone Data Protection

ARM / x86

  • ARM General
    • ARMv8 Overview
    • ARMv8 ARM ARM (Architecture Reference Manual)
    • ARMv8-A Tools
    • ARM Software Standards
    • Siguza's ARM Bootcamp
  • Apple CPUs
    • Asahi: Introduction to Apple Silicon
    • dougallj's applecpu
  • Compilers
    • ARM Clang PAC ABI
  • ARM Mitigations
    • APRR
    • PAN
    • SPRR & GXF

Hypervisor / Virtualization

  • Apple Hypervisor
    • Official documentation
    • Hypervisor on Apple Silicon

Baseband

  • baseband.yaml in Data Files
  • Qualcomm
    • hack-different/apple-baseband
    • Hexagon DSP
      • Hexagon SDK
      • Hexagon QEMU
      • Binary Ninja Hexagon
      • Hexag00n
      • IDA Hexagon
      • idp_heaxagon

Coprocessors

  • hollance/neural-engine
  • RTKit - "Realtime" Kit
    • 19h/ftab-dump

USB / Wired Protocols / Low Level Hardware

  • Basically all iDevice / iTunes
    • libimobiledevice.org
    • libimobiledevice/libimobiledevice
    • hack-different/python-libimobiledevice
    • doronz88/pymobiledevice3
  • DFU / Recovery
    • libimoibledevice/libirecovery
    • Technical analysis of the checkm8 exploit
  • usbmuxd - USB transport for iDevices
    • libimobiledevice/usbmuxd
    • t8012/demuxusb
  • com.apple.restored - iDevice Restore Protocol
    • libimobiledevice/idevicerestore
  • UTDM - USB Target Disk Mode
    • rickmark/apple_utdm
  • USB-C Power Delivery - Vendor Defined Messages
    • USB-C Port Controller (ACE) Secrets
    • rickmark/macvdmtool
  • Lightning
    • http://ramtin-amin.fr/#tristar
    • https://nyansatan.github.io/lightning/
  • NVMe / NAND / PCIe
    • http://ramtin-amin.fr/#nvmepcie
    • http://ramtin-amin.fr/#nvmedma
  • gh2o/rvi_capture
  • osy/ThunderboltPatcher
  • Qi Wireless Charging

Network / Wireless / Transit

  • Apple Wi-Fi Password Sharing
    • seemoo-lab/openwifipass
  • AWDL - Apple Wireless Distribution Link
    • Findings from Ian Beer, Project Zero
  • Bluetooth Bonjour (Service Discovery)
  • iCloud
    • nicolas17/mesu-archive
  • Apple Watch Pairing
  • com.apple.terminusd
  • Magic Pairing: Securing Bluetooth Peripherals
  • ATC - Air Traffic Control - iTunes Wi-Fi Sync
  • RemoteXPC
    • https://duo.com/labs/research/apple-t2-xpc
    • XPoCe
  • macOS Internet Recovery
    • rickmark/apple_net_recovery
    • Internet Recovery
  • iCloud Keychain (Umbrella for multiple formats)

System Configuration and State

  • FDR - Factory Data Restore
  • SysCfg - System Configuration - Serial Number and other Device Info
  • APTicket - The root of an authorized version set

Diagnostic Protocols

  • AWDD - Apple Wireless Diagnostics (misnomer, more than wireless, system trace)
    • rickmark/awdd_decode
  • Mojo Serial
    • MojoKDP.kext.S
  • Apple "tailspin"
  • Apple tracev3 Unified Logging
    • `ydkhatri/UnifiedLogReader``
    • dtformats
  • XHC20 USB Capture
    • hack-different/demuxusb/ext/pcapng.h

Jailbreaks

  • checkra1n
    • checkra1n 1337
  • limera1n
  • OpenJailbreak/greenpois0n
  • 0x7ff/gaster
  • axi0mX/ipwndfu
  • dora2-iOS/ipwnder_lite
  • LinusHenze/Fugu
  • unc0ver
  • Taurine
  • Odyssey
  • Chimera
  • palera1n
  • rootlessJB writeup
  • evasi0n writeup by geohot
  • Fugu14 writeup
  • TaIG
    • 8.0
    • 8.1.2
    • 8.1.3
    • 8.4

Jailbreak Tooling

  • Chronic-Dev/syringe
  • ProcursusTeam/Procursus
  • comex/substitute
  • sbingner/substitute
  • Cydia
  • ElleKit
  • Zebra
  • Sileo

Jailbreak Slides

  • Jailbreaking iOS in the Post-Apocalyptic Age
  • Fugu15 Slides

X-Plat

  • pongoOS
  • Asahi Linux for M1
  • Corellium's M1 Branch
  • Android on pongoOS
    • iphonelinux

Safety / Protection

  • rickmark/isafety
  • Mobile Verification Toolkit
  • mvt-project/mvt

CREDITS

Hack Different - Apple Knowledge is a product of the entire community and belongs to the community. It is facilitated by the volunteer work of the Hack Different moderation team.

If you have issue with the design or workflow of this repository, blame me (rickmark) as I setup and configured most of it. (it me). If you have feedback, join the #apple-knowledge channel of the discord server.

Portions of data and knowledge come from TheiPhoneWiki, libimobiledevice's website, and checkra1n's website, as well as the individuals who brought you those projects (and many more!)

Special mention to Jonathan Levin and Amit Singh for taking the time to publish books on these topics.

  • Mac OS Internals by Singh
  • Mac and iOS Internals by Levin
  • *OS Internals - User Mode by Levin
  • *OS Internals - Kernel Mode by Levin
  • *OS Internals - Security by Levin

A list of all projects and their contributors is at CREDITS and is updated by a script. If there are persons not updated due to limitations, please PR the CREDITS page and call them out.

Setting up overcommit, the linters, and the build

Main article is in BUILD

To keep the repo, docs, and data tidy, we use a tool called overcommit to connect up the git hooks to a set of quality checks. The fastest way to get setup is to run the following to make sure you have all the tools:

brew install hunspell
gem install overcommit bundler
bundle install
overcommit --install

Why not <insert wiki here>

Wiki's best serve prose, and part of the goal here is to leverage machine readable and ingestable information with human augmentation wherever possible.

As of 2022, GitHub has 56 million users. That means that there are 56 million people who are able to contribute directly to this repo via a fork and PR, in opposition to wiki's which have a relatively small number of potential editors. The PR process also allows for modifications to be reviewed, commented and debated before inclusion.

License

The contents of this repo are dual-licensed:

Code and data licensed under the MIT license

Documents also licensed under the CC-BY-SA

Creative Commons License{style="border-width:0"} {rel=license} Apple Knowledge{:xmlns:dct="http://purl.org/dc/terms/", :property="dct:title"} by Hack Different{:xmlns:cc="http://creativecommons.org/ns#", :property="cc:attributionName", :rel="cc:attributionURL"} is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/ licenses/by-sa/4.0/){:rel="license"}

Dedication

Here’s to the crazy ones, the misfits, the rebels, the troublemakers

the round pegs in the square holes…

the ones who see things differently — they’re not fond of rules…

You can quote them, disagree with them, glorify or vilify them, but the only thing you can’t do is ignore them because they change things…

They push the human race forward, and while some may see them as the crazy ones,

we see genius,

because the ones who are crazy enough to think that they can change the world,

are the ones who do.

— Steve Jobs, 1997

Also dedicated to the volunteer work of those who use this for good, and deny the shadow to those who seek to harm.

About

A collection of reverse engineered Apple things, as well as a machine-readable database of Apple hardware

Topics

appleapple-siliconawesomeexploitiosjailbreakjekyllmacosmacosxreverse-engineeringruby

Resources

Readme
MIT license

Security policy

Security policy
Activity
Custom properties

Stars

1.4k stars

Watchers

29 watching

Forks

117 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.