[iOS] iOS 애플리케이션 구조

hack_98·2023년 1월 27일
0

iOS

목록 보기
4/6

1. iOS 애플리케이션 구조

1) 구조

  • /Applications/$app_name.app
    • 탈옥 애플리케이션 디렉토리
  • /var/mobile/Containers/Data/Application/$uuid
    • ios에서 제공하는 샌드 박스로 인해 탈옥 되지 않은 디바이스의 특정 앱에서만 접근 가능
  • /var/Keychain/keycahin-2.db
    • iOS KeyChain
    • sqlite데이터베이스로 구성된 파일이며 모든 데이터는 암호화됨(리버싱 잘하면 복호화 가능)

2. Mach-O 및 Fairplay DRM 소개

1) Mach-O 바이너리 파일

  • iOS디바이스에 설치된 앱은 Mach-O 바이너리 파일의 형태
  • Mach-O (Mach object format)
  • 앱스토어에서 다운한 앱은 FairPlay DRM을 통해 암호화 되어 있음
    • 로더에 의해 런타임 중에 해독됨 (이후, 실행된걸 유저에게 보여줌)

2) Mach-O 바이너리 파일 형식

  • 리버싱 과정에서 3가지 섹션으로 나뉨
  1. Header
    • Mach-O 파일 설명
  2. Load Commands
    • 세그먼트와 섹션을 설명
  3. Data
    • 실제 데이터, 하나이상의 세그먼트에 실제 데이터를 포함

3) Fairplay DRM

  • 앱스토어에서 다운한 앱은 Fairplay DRM을 이용해 암호화 및 보호
  • 암호화된 바이너리 파일은 커널의 Mach-O 로더에 의해 런타임 중 해독
  • DRM적용 여부는 Otool 도구를 사용하여 확인 가능
  • 바이너리 분석에서는 DRM 해독 필수 ! (Class-dump, frida-ios-dump 도구를 통해 해독 가능)
profile
Go Big or Go Home

0개의 댓글