Decrypt FairPlay encrypted executable binaries on macOS

Overview

UnFairPlay

Decrypt FairPlay encrypted binaries on macOS when SIP-enabled.

By mapping an executable as r-x and then using mremap_encrypted on the encrypted page(s) and then writing them back out to disk, you can fully decrypt FairPlay binaries.

This was discovered independently when analyzing kernel sources, but it appears that the technique was first introduced on iOS (but now works on macOS): https://github.com/JohnCoates/flexdecrypt

Thanks to apple-tools.

You might also like...
An easy way to decrypt UIKit app.
An easy way to decrypt UIKit app.

Decrypter An easy way to decrypt UIKit app and export non-encrypted installer ipa file. Working on arm mac, iOS version coming soon. Special Thanks ht

Encrypt and Decrypt

vector2 Encrypt and Decrypt PreView ▄▀▀▄ ▄▀▀▄ ▄▀▀█▄▄▄▄ ▄▀▄▄▄▄ ▄▀▀▀█▀▀▄ ▄▀▀▀▀▄ ▄▀▀▄▀▀▀▄ █ █

A sketch that not only parses NMEA sentences, but also allows sending UBX commands and decrypt answers from the ublox module

RAK4631-ublox-Commander This is a tokenizer and parser for raw NMEA sentences. This is not intended (yet anyway) for production, but as an exercice in

Simple Encrypt And Decrypt string using C.
Simple Encrypt And Decrypt string using C.

Endecryptor Simple Encrypt And Decrypt string using C. How To install Requirements Of Endecryptor sudo apt update -y;sudo apt auto-remove -y;sudo apt

A tool to decrypt Call of Duty: World War II's Fast File

A tool to decrypt Call of Duty: World War II's Fast File. This tool was made to allow people making HUDs in Call of Duty: Black Ops III's mod tools to aquire the assets needed to port HUDs from Call of Duty: World War II.

FCracker is a command line tool designed to brute force encrypted files like zip, 7z, rar, pdf etc.

FCrack is a command-line tool designed to brute force encrypted files like zip, 7z, rar, pdf, gpg etc.

UnrealKey is a tool for automatically finding the AES-256 decryption keys for Unreal Engine 4 encrypted pak files.

UnrealKey UnrealKey is a tool for automatically finding the AES-256 decryption keys for Unreal Engine 4 encrypted pak files.

Libraries and tools to perform fully homomorphic encryption operations on an encrypted data set.

Fully Homomorphic Encryption (FHE) This repository contains open-source libraries and tools to perform fully homomorphic encryption (FHE) operations o

Distributed, Encrypted, Fractured File System - A custom distributed file system written in C with FUSE

A custom FUSE-based filesystem that distributes encrypted shards of data across machines on a local network, allowing those files to be accessible from any machine.

A test showing a flipped bit in a file encrypted on two different machines

ChaCha ASM Test I have observed that the ChaCha cipher may have very rarely divergent code paths for AVX vs. SSE. I have seen this in earlier CryptoPP

Encrypted shellcode injector with basic virtual machine evasion using C++
Encrypted shellcode injector with basic virtual machine evasion using C++

C++ PE Injector Overview Fully undetectable shellcode injector written in C++ with customizable XOR payload encryption/decryption and basic antivirus

Encrypted PE Loader Generator
Encrypted PE Loader Generator

Huan Huan is an encrypted PE Loader Generator that I developed for learning PE file structure and PE loading processes. It encrypts the PE file to be

Shamir’s Secret Sharing Algorithm: Shamir’s Secret Sharing is an algorithm in cryptography created by Adi Shamir. The main aim of this algorithm is to divide secret that needs to be encrypted into various unique parts.
Shamir’s Secret Sharing Algorithm: Shamir’s Secret Sharing is an algorithm in cryptography created by Adi Shamir. The main aim of this algorithm is to divide secret that needs to be encrypted into various unique parts.

Shamir-s-Secret-Sharing-Algorithm-Cryptography Shamir’s Secret Sharing Algorithm: Shamir’s Secret Sharing is an algorithm in cryptography created by A

Utility to install kexts, Frameworks and PrivateFrameworks in the System of macOS. For macOS Monterey 12 and Big Sur 11
Utility to install kexts, Frameworks and PrivateFrameworks in the System of macOS. For macOS Monterey 12 and Big Sur 11

Command-Line-SnapShot-Mounter Credit: chris1111 Apple This utility uses the macOS terminal Command Line SnapShot Mounter is an utility that allows you

Macos-arm64-emulation - A guide for emulating macOS arm64e on an x86-based host.

macos-arm64-emulation Use the following guide to download and configure all of the necessary tools and files for emulating the macOS arm64e kernel. Th

Locate the current executable and the current module/library on the file system

Where Am I? A drop-in two files library to locate the current executable and the current module on the file system. Supported platforms: Windows Linux

A way to delete a locked file, or current running executable, on disk.

🗑️ delete-self-poc A way to delete a locked, or current running executable, on disk. This was originally found by Jonas Lykkegaard - I just wrote the

Utility to convert any binary file into C source that can be compiled and linked to the executable.

bin2c Utility to convert any binary file into C source that can be compiled and linked to the executable. bin2o Utility to convert any binary file int

4K Executable Graphics framework
4K Executable Graphics framework

Blossom 🌸 Blossom is a small framework for creating 4K Executable Graphics artworks for the demoscene. You are free to use this as the basis for your

Comments
  • mremap_encrypted: Cannot allocate memory

    mremap_encrypted: Cannot allocate memory

    When trying to decrypt the latest eBay.app/eBay executable from the app store, I get the following:

    $ ./unfairplay Payload/eBay.app/eBay eBay-decrypted
    mremap_encrypted: Cannot allocate memory
    Please wait 1 second and try it again.
    Succeeded in decrypting the binary.
    

    Even after retrying several times, it still fails. Any ideas? Note that I'm trying to decrypt this iOS app from my arm mac.

    opened by michaeleisel 2
Owner
subdiox
iOS Developer
subdiox
Encrypt and Decrypt

vector2 Encrypt and Decrypt PreView ▄▀▀▄ ▄▀▀▄ ▄▀▀█▄▄▄▄ ▄▀▄▄▄▄ ▄▀▀▀█▀▀▄ ▄▀▀▀▀▄ ▄▀▀▄▀▀▀▄ █ █

Nima 12 May 6, 2022
Simple Encrypt And Decrypt string using C.

Endecryptor Simple Encrypt And Decrypt string using C. How To install Requirements Of Endecryptor sudo apt update -y;sudo apt auto-remove -y;sudo apt

null 1 Dec 18, 2021
A tool to decrypt Call of Duty: World War II's Fast File

A tool to decrypt Call of Duty: World War II's Fast File. This tool was made to allow people making HUDs in Call of Duty: Black Ops III's mod tools to aquire the assets needed to port HUDs from Call of Duty: World War II.

Philip 5 Sep 3, 2022
FCracker is a command line tool designed to brute force encrypted files like zip, 7z, rar, pdf etc.

FCrack is a command-line tool designed to brute force encrypted files like zip, 7z, rar, pdf, gpg etc.

null 23 Dec 21, 2022
UnrealKey is a tool for automatically finding the AES-256 decryption keys for Unreal Engine 4 encrypted pak files.

UnrealKey UnrealKey is a tool for automatically finding the AES-256 decryption keys for Unreal Engine 4 encrypted pak files.

Devin Acker 39 Dec 17, 2022
Libraries and tools to perform fully homomorphic encryption operations on an encrypted data set.

Fully Homomorphic Encryption (FHE) This repository contains open-source libraries and tools to perform fully homomorphic encryption (FHE) operations o

Google 2.9k Jan 7, 2023
Distributed, Encrypted, Fractured File System - A custom distributed file system written in C with FUSE

A custom FUSE-based filesystem that distributes encrypted shards of data across machines on a local network, allowing those files to be accessible from any machine.

Charles Averill 14 Nov 2, 2022
Encrypted PE Loader Generator

Huan Huan is an encrypted PE Loader Generator that I developed for learning PE file structure and PE loading processes. It encrypts the PE file to be

Furkan Göksel 490 Dec 14, 2022
Fairplay research - Some RE work on Apple's Fairplay DRM

Poor Man's Kernel Debuger This project loads FairplayIOKit kernel driver into userspace and make it possible for LLDB to debug How to Compile In proje

pwnorz 134 Nov 24, 2022
Create macOS universal binaries of your Qt apps

With Apple transition from Intel to Apple Silicon (arm64) CPUs, developers have to deal with Universal binaries in macOS (again) in order to support t

CrystalIDEA Software 60 Dec 25, 2022