[iOS] iOS 파일 시스템 이해

hack_98·2023년 1월 25일
0

iOS

목록 보기
3/6

1. iOS 파일 시스템(APFS)

1) APFS

  • Apple File System 약자
  • 파일 시스템 : 파일 자료를 쉽게 발견 및 접근 하도록 보관하는 체제
  • 기존 HFS+(정해진 용량만 사용가능)를 대체하는 새로운 파일 시스템
    • APFS 는 컨테이너 방법을 사용하여 컨테이너 내의 파티션 용량 조절
  • 암호화 기능이 추가되어 파일 시스템 암호화

2. IPA 파일 구조(압축 해제)

1) IPA 파일 구조

  1. Payload

    • 애플리케이션의 모든 데이터가 포함됨
  2. Payload/Application.app

    • 컴파일 된 애플리케이션, 앱에서 사용하는 리소스, info.plist 등이 포함됨
  3. Payload/Application.app/AppBinary

    • 실행 가능한 바이너리 파일
  4. Payload/Application.app/_Code

    • 애플의 개발자 인증서로 만든 애플리케이션 서명
  5. iTunesMetadata.plist

    • 개발자 이름, 번들 식별자, 저작권 정보 등의 세부 정보 포함

2) SSH 접속

  • 3utools를 사용하여 ssh 접속을 시도 (putty사용)
  • 아이디 : root / 비밀번호 : alpine

3) ipa 앱 추출 방법

  • ipainstaller -b [bundleid]
    • /private/var/mobile/Documents/[bundleid] : 앱이 추출됨
  • 해당 파일의 압축을 풀고 디렉토리 확인 및 분석
  • 바이너리 파일 (크기가 가장 큼)
    • 앱스토어에서 다운 받는 경우 DRM이 걸려 있음



3. IPA 파일 구조

1) IPA 구조 컨테이너

  1. Bundel Container
    • /var/containers/Bundle/Application/$uuid
    • 앱의 번들(리소스를 가진 디렉토리)을 저장
  2. Data Container
    • /var/mobile/Containers/Data/Application
    • 앱과 사용자 데이터 저장, 서브 디렉토리 가짐
  3. iCloud Container
    • /private/var/mobile/Library/Mobile Documents
    • iCloud와 관련된 데이터, iCloud 지원 애플리케이션

2) 컨테이너 내 파일 구조

  1. AppName.app/

    • 앱의 번들로 일반적으로 쓰기 불가능/읽기만 가능
    • 사용자에게 노출,생성, 다운로드한 파일 포함
    • Data Container 내에 위치
  2. Documents/

    • 사용자가 생성한 문서/데이터와 외부 앱에서 받은 파일저장
    • iTunes 나 iCloud 에 백업됨
  3. Library/

    • 유저 데이터 및 임시 파일을 제외한 모든 파일관리
    • application support, Caches 를 주로 사용
    • Library/Preferences 폴더에 앱에 대한 중요 설정이 담겨 있으므로 확인 필수
  4. Tmp/

    • 임시파일을 위한 저장소

3) 루트 사용자 홈 디렉토리

  • symbolic link를 이용한 루트 사용자 홈 디렉토리
    • /var/root
  • 기본 루트 사용자 홈 디렉토리
    • /private/var/root
  • 루트 사용자의 루트 디렉토리
    • /

4) 환경변수 PATH

  • #echo $PATH : 환경변수 설정가능한 PATH 확인 가능
  • 환경 변수 디렉토리 등록하기 위해서 “PATH=&PATH:/경로” 명령어로 등록 가능
profile
Go Big or Go Home

0개의 댓글