fairplay-decrypt README

The project's README from github.com/EthanArbuckle/fairplay-decrypt. As one markdown file: README.md.

IPA decryptor

Decrypt FairPlay-encrypted apps using a 16-byte credential for the account that owns each IPA. Credential retrieval gets it from a supported jailbroken device and writes credential.bin to the chosen output directory.

Decryption runs on macOS and Linux.

Supports version-3 and version-5 SUPF, 448-byte and 440-byte SINF priv records, and encrypted arm64 Mach-O slices. A 440-byte record must end in eight zero bytes.

Set up

From this directory, with Python 3.9+ and a C compiler:

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt
make

On macOS, make also builds the credential-retrieval bundle and requires Xcode and ldid. On Linux, it builds the decryptor.

Decrypt

python decrypt.py /path/to/encrypted.ipa /path/to/decrypted.ipa \
  --credential /path/to/credential.bin

If --credential is omitted, the tool reads ./credential.bin. The output path must not exist.

The decryptor uses each IPA's SINF and SUPF records to derive page keys, decrypt its encrypted arm64 pages, and clear cryptid.

fairplay-decrypt (EthanArbuckle/fairplay-decrypt)

ios-jailbreak
Searching Database…

What is this?A command-line tool that decrypts FairPlay-encrypted App Store IPA files by independently deriving the decryption keys from a 16-byte account credential, instead of relying on an external keychain or service.
Is this a GUI app or a command-line tool?It's a command-line tool built in C and Python, split into two steps: a credential-retrieval binary and a separate decryptor, with no graphical interface.
How do I actually decrypt an IPA with this?Build the project with Python 3.9+ and a C compiler via make, retrieve a credential.bin from a jailbroken device using the credential-retrieval step, then run the decryptor on the IPA; it reads ./credential.bin unless you pass --credential.
What do I need installed before building it?Python 3.9+ and a C compiler. On macOS, make additionally builds the credential-retrieval bundle, which requires Xcode and ldid.
Do I need a jailbroken iPhone to use this?Yes, to generate credential.bin — the credential-retrieval step only works on a supported jailbroken device; decryption itself just needs that resulting file.
Can the decryptor run on Linux, or only macOS?Decryption runs on both macOS and Linux; only building the credential-retrieval bundle (the Xcode/ldid part) is macOS-specific.
What exactly does the decryptor do to an IPA?It reads the IPA's SINF and SUPF records to derive the FairPlay page keys, decrypts the encrypted arm64 Mach-O pages, and clears the cryptid flag.
What FairPlay record formats are supported?Version-3 and version-5 SUPF structures, plus 448-byte and 440-byte SINF priv records (440-byte records must end in eight zero bytes).
What happens if the output file already exists?The decryptor refuses to run if the chosen output path already exists, so it won't overwrite existing files.
Can I decrypt an IPA without owning the app's Apple account?No — the 16-byte credential used for decryption belongs to the account that purchased the IPA, so you need that account's credential to derive the keys.
Size
11.6 MB
Stars
2.1K
Updated
CommitOct 24
Age
7d
Commits · 90 Days