본문으로 바로가기

페어플레이(Fairplay) DRM 이란?

- 앱(어플)의 바이너리 파일을 암호화하여 분석 및 변조가 어렵도록 하는 것.
- 앱 스토어(App Store)에서 다운로드한 앱은 모두 페이플레이 DRM으로 암호화되어 있음.
- 페어플레이 DRM 적용여부는 Otool 도구를 이용하여 확인 가능.

- 페어플레이 DRM이 복호화될 경우 작동방식 및 내부 클래스 구조등을 쉽게 파악하게 되어 보안기능을 우회할 수 있음.

 

페어플레이 DRM 복호화 방법

1. CRACKERXI+

복호화 과정이 매우 쉬움. 복호화 방법은 본문 하단 참조.

 

2. Clutch

복호화 과정이 쉬움. 아래의 링크 참조.

2023.02.26 - [Mobile App 취약점 진단/iOS App 진단] - 페어플레이 DRM 복호화 방법 - Clutch

 

페어플레이 DRM 복호화 방법 - Clutch

페어플레이(Fairplay) DRM 이란? - 앱(어플)의 바이너리 파일을 암호화하여 분석 및 변조가 어렵도록 하는 것. - 앱 스토어(App Store)에서 다운로드한 앱은 모두 페이플레이 DRM으로 암호화되어 있음. -

hagsig.tistory.com

 

3. Frida-iOS-Dump.py

복호화 과정이 매우 복잡하고 어려움. 아래의 링크 참조.

2023.02.26 - [Mobile App 취약점 진단/iOS App 진단] - 페어플레이 DRM 복호화 방법 - Frida-iOS-Dump

 

페어플레이 DRM 복호화 방법 - Frida-iOS-Dump

페이플레이(Fairplay) DRM 이란? - 앱(어플)의 바이너리 파일을 암호화하여 분석 및 변조가 어렵도록 하는 것. - 앱 스토어(App Store)에서 다운로드한 앱은 모두 페이플레이 DRM으로 암호화되어 있음. -

hagsig.tistory.com

 

CRACKERXI+를 이용한 복호화 방법

Cydia 앱 실행 > 소스 클릭 > 편집 클릭 > 추가 클릭 > cydia.iphonecake.com 입력 > 소스추가 클릭

 

무시하고추가 클릭 > Cydia로 복귀 클릭 > 개별 소스 목록에 AppCake가 보인다면 제대로 설치된 것.

 

검색 클릭 > CrackerXI+ 검색 > CrackerXI+ 클릭 > 설치 클릭 > 확인 클릭

 

SpringBoard 다시 시작 클릭 > 홈 화면에 추가된 CrackerXI+ 앱 실행 > Settings 클릭 > 모든 옵션 활성화

 

AppList 클릭 > 새로고침 클릭 > 복호화하고 싶은 앱 클릭 > YES, Full IPA 클릭 > Dismiss 클릭

 

/private/var/mobile/Documents/CrackerXI 경로에 복호화한 앱의 IPA파일이 존재함.

기존에 설치된 앱을 삭제한뒤, IPA파일을 더블클릭하면 복호화한 앱의 IPA를 통해 설치할 수 있음.

 

페어플레이 DRM 적용 여부 확인 방법

3uTools 실행 > Toolbox 클릭 > Open SSH Tunnel 클릭

※ 기본(Default) ID : root / PW : alpine

 

아래의 명령어를 입력해 페어플레이 DRM 적용여부 확인.

> otool -l "바이너리파일 경로" | grep "cryptid"

※ Cryptid 값이 1일 경우 페어플레이 DRM이 적용되어 있는 것이고, 0일 경우 페어플레이 DRM이 적용되어 있지 않은 것.

 

※ 바이너리 파일 경로

3uTools Files에서 Applications (User) 클릭 또는 탐색창에 /var/Containers/Bundle/Application 입력.

바이너리 파일 경로를 알고 싶은 앱 이름과 동일한 폴더를 선택한 뒤 더블클릭.

 

Size 클릭하여 크기순으로 정렬, 폴더를 제외하고 크기가 제일 큰 파일이 바이너리 파일임. 우클릭 Export 버튼을 눌러 추출가능.