You are currently viewing fairplay-decrypt giải mã IPA FairPlay offline bằng credential 16 byte

fairplay-decrypt giải mã IPA FairPlay offline bằng credential 16 byte

Nếu từng vọc IPA trên máy Mac hoặc Linux, bạn biết cảnh phải mở Xcode, dựng một thiết bị jailbreak trung gian, rồi cầu trời cho tool cũ còn chạy với iOS mới. Repo EthanArbuckle/fairplay-decrypt làm đúng một việc: nhận file IPA đã mã hóa FairPlay, dùng credential 16 byte của tài khoản sở hữu IPA đó, và xuất ra bản giải mã. Không cần kết nối trực tiếp tới App Store trong lúc chạy, không cần thiết bị iOS treo lơ lửng suốt quá trình decrypt.

Nó làm gì, cụ thể

FairPlay là lớp mã hóa của Apple trên các app mua từ App Store. Mỗi page trong binary arm64 bị mã hóa bằng khóa riêng, và thông tin để dẫn xuất khóa nằm trong các bản ghi SINF và SUPF nhúng trong bundle. Tool của Ethan đọc chính các bản ghi đó để tự tính khóa page, giải mã từng page arm64, rồi xóa cờ cryptid trong Mach-O header. Nói cách khác, nó làm phần “derive key” một cách độc lập thay vì phụ thuộc vào một thiết bị đang chạy để hỏi khóa từng page.

README ghi rõ phạm vi hỗ trợ: SUPF version 3 và version 5, bản ghi SINF priv dài 448 byte hoặc 440 byte (loại 440 byte phải kết thúc bằng 8 byte zero), và các slice Mach-O arm64 đã mã hóa. Đây là mấy con số khá cụ thể, cho thấy tác giả đã test với app thật chứ không viết theo suy đoán.

Vì sao nó đang được chú ý

Repo mới tạo ngày 19/10/2026, cập nhật ngày 22/10/2026, và đã có 556 sao. Ba ngày, 556 sao, với một tool C thuần về reverse engineering. Con số đó nói lên nhu cầu thật của cộng đồng: các tool decrypt IPA đời trước hoặc đã chết, hoặc gắn chặt với phiên bản iOS cụ thể, hoặc bắt bạn giữ một máy jailbreak cắm suốt. Việc tách phần lấy credential ra khỏi phần decrypt là điểm khác biệt chính. Credential lấy một lần từ thiết bị jailbreak được hỗ trợ, ghi ra credential.bin, xong. Phần decrypt sau đó chạy độc lập trên macOS hoặc Linux.

Cũng đáng nói: tác giả là người có tiếng trong giới reverse engineering iOS, nên repo không phải đồ chơi cuối tuần. Nhưng nó vẫn rất mới, và điều đó quan trọng, tôi sẽ nói ở phần dưới.

Cài và chạy thử

Yêu cầu Python 3.9+ và một C compiler. Trên macOS, bước make còn build thêm bundle lấy credential, nên cần Xcode và ldid. Trên Linux thì chỉ build decryptor.

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

Trên macOS, make cũng build credential-retrieval bundle và cần Xcode cùng ldid. Trên Linux, nó build decryptor.

Chạy decrypt:

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

Nếu bỏ --credential, tool đọc ./credential.bin trong thư mục hiện tại. Đường dẫn output phải chưa tồn tại, tool không ghi đè. Chi tiết nhỏ nhưng đúng ý tôi: tránh ghi đè nhầm file IPA đang làm việc.

Ai nên dùng, dùng để làm gì

Nhóm rõ ràng nhất là researcher làm phân tích binary iOS: cần disassemble, chạy Frida, kiểm tra logic app mà không bị chặn ở lớp mã hóa. Nhóm thứ hai là dev đang debug app của chính mình nhưng muốn so sánh binary App Store với bản build local. Nhóm thứ ba là người làm tooling, ví dụ viết pipeline tự động dump IPA rồi decrypt hàng loạt, vì phần decrypt chạy offline trên Linux nên dễ nhét vào CI hoặc máy chủ không có macOS.

Nhóm không nên dùng: người chỉ muốn “tải app lậu”. Tool này không phải downloader, nó cần credential của tài khoản sở hữu IPA và cần một thiết bị jailbreak để lấy credential lần đầu. Rào cản đó đủ để nó không phải công cụ đại chúng.

So với lựa chọn khác

Tôi không nêu tên cụ thể mấy tool cũ vì trạng thái của chúng thay đổi liên tục và tôi không muốn nói sai. Điểm khác biệt của fairplay-decrypt nằm ở mô hình: một lần lấy credential, decrypt offline, hỗ trợ cả SUPF v3 và v5 cùng hai kích thước bản ghi SINF. Nếu tool bạn đang dùng bắt bạn giữ thiết bị kết nối suốt hoặc chỉ chạy trên một phiên bản iOS cố định, đây là lý do để thử cái này.

Ưu điểm và những chỗ cần dè chừng

Ưu điểm thực tế: chạy trên Linux, không cần macOS cho phần decrypt, viết bằng C nên nhẹ, và tách bạch rõ ràng giữa bước lấy credential và bước giải mã. README ngắn nhưng đủ thông tin về định dạng hỗ trợ.

Hạn chế thì phải nói thẳng. License không được ghi rõ trong dữ liệu repo, nghĩa là bạn không biết mình được phép dùng nó trong sản phẩm thương mại hay không. Đây là rủi ro pháp lý thật, không phải chuyện nhỏ. Repo mới 3 ngày tuổi, tài liệu chỉ có README, không có test suite công khai, không có issue history để biết tool xử lý các IPA lạ tốt đến đâu. Phần lấy credential trên macOS phụ thuộc vào thiết bị jailbreak được hỗ trợ, mà README không liệt kê cụ thể là những thiết bị nào. Bạn sẽ phải tự thử.

Thêm một điểm về bản chất: tool này đụng tới FairPlay, và Apple không thích điều đó. Đừng ngạc nhiên nếu repo biến mất hoặc bị DMCA một ngày nào đó. Nếu định dùng lâu dài, fork về máy mình sớm.

Tôi thấy 556 sao trong 3 ngày là tín hiệu tốt về nhu cầu, nhưng chưa đủ để nói tool ổn định. Cứ clone về, thử với vài IPA bạn sở hữu, xem nó xử lý được bao nhiêu trong số đó. Nếu tỉ lệ thành công cao với app bạn cần, giữ một bản fork. Nếu không, ít nhất bạn biết nó không phải viên đạn bạc. Repo ở đây: EthanArbuckle/fairplay-decrypt.

Chia sẻ bài này

TelegramXFacebookZalo
Đăng ngày 23/10/2026
Giang Na
Về tác giả: Giang Na
Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.

Giang Na

Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.