예전 iPod은 쉽게 마운트하여 USB 드라이브처럼 접근할 수 있었습니다. iPhone에서도 가능하지만, 다루려는 데이터의 유형에 따라 방법이 다릅니다.
이 문서에서는 다음과 같은 여러 방법을 살펴봅니다.
| 방법 | 접근 가능한 파일 | 요구 사항 |
|---|---|---|
| PTP | 사진 및 비디오 | Windows 및 macOS에 기본 제공 |
| AFC | 사진, 비디오 및 일부 앱 | iTunes |
| FUSE(탈옥 없음) | 사진, 비디오 및 일부 앱 | 무료 FUSE 클라이언트 |
| FUSE(탈옥 사용) | 모든 파일 | 탈옥, 무료 FUSE 클라이언트 |
| Filza를 통한 WebDAV | 모든 파일 | 탈옥, 무료 WebDAV 클라이언트 |
| AFC2 | 모든 파일 | 탈옥, AFC2 플러그인, AFC2 클라이언트 |
| 기타 | 없음 | 최신 iOS에서는 작동하지 않음 |
탈옥하지 않은 기기에서는 카메라 파일과 일부 앱의 데이터만 다룰 수 있습니다. 이 문서에서는 두 가지 방법을 모두 살펴봅니다.
PTP: 사진, 비디오, 카메라 데이터를 디스크 마운트로 접근하기
iOS는 최신 기기를 USB로 연결하면 자동으로 카메라로 인식합니다. 이때 사진 전송 프로토콜(PTP)을 사용하며, 사진을 주고받을 수 있게 해 주는 다소 제한적인 시스템입니다. 사진이 표시되는 DCIM 폴더는 아마 익숙할 것입니다.
PTP에는 단점이 여럿 있습니다. 가장 두드러지는 점은 카메라 이외의 파일에는 접근할 수 없다는 것입니다. 또한 PTP는 파일이나 폴더의 이름 변경이나 수정 같은 기능을 지원하지 않으며, 변경하려면 삭제하고 다시 만들어야 합니다. 이는 느립니다.
iTunes와 AFC로 사진 및 앱 데이터에 접근하기
Apple 지식 베이스에는 iTunes를 이용한 기본적인 파일 공유 관리 방법을 설명하는 문서가 있습니다.
FUSE로 USB를 통해 앱 데이터에 접근하기
FUSE는 사용자가 시스템에 관리자 수준의 변경을 하지 않고도 Windows 또는 Mac 컴퓨터에 드라이브를 마운트할 수 있게 해 주는 시스템입니다. FUSE는 “사용자 공간의 파일 시스템(filesystem in userspace)”의 약자이며 대부분의 플랫폼에서 다양한 형태로 제공됩니다. FUSE 자체는 추상화 계층으로, 기기나 데이터 소스와 직접 통신하는 기술이 아니며 보통 다른 방식이 그 역할을 합니다. iPhone을 드라이브로 마운트하는 경우 FUSE는 SSH, AFC/AFC2, PTP, WebDAV 같은 다른 프로토콜로 iPhone과 통신합니다. Windows에서는 Dokan 사용자 모드 파일 시스템이 많이 쓰이고, macOS에서는 osxfuse가 인기 있습니다.
사용자 입장에서는 FUSE가 기기 데이터의 표시 방식을 통일해 주므로, 마운트를 담당하는 하위 프로토콜이 무엇인지는 대개 중요하지 않습니다.
macOS에서 FUSE 마운트 사용하기
macOS에서 이 방법으로 기기를 마운트하는 과정을 보여 드리겠습니다. 이 방법을 사용하려면 무료 Homebrew 패키지 관리자를 설치해야 하며 macOS의 터미널 사용에 익숙해야 합니다.
먼저 기기의 UDID을 찾습니다. 무료 버전 iPhone Backup Extractor, lsusb 명령, 또는 ioreg -p IOUSB -l -w 0으로 찾을 수 있습니다. 기기를 연결한 상태에서 iPhone Backup Extractor를 실행하고 기기를 선택한 다음 “정보” 탭을 선택합니다. “하드웨어 식별자” 섹션에 UDID이 표시됩니다.

iPhone Backup Extractor에 표시된 기기 데이터
다음으로 macOS용 FUSE를 준비합니다.
$ brew tap homebrew/cask
$ brew cask install osxfuse
==> Caveats
To install and/or use osxfuse you may need to enable their kernel extension in
System Preferences → Security & Privacy → General
For more information refer to vendor documentation or the Apple Technical Note:
https://developer.apple.com/library/content/technotes/tn2459/_index.html
You must reboot for the installation of osxfuse to take effect.
그리고 FUSE를 통해 iOS 기기와 통신할 수 있게 해 주는 코드인 ifuse를 설치합니다.
$ brew install ifuse
ifuse를 설치하면 앞에서 구한 UDID로 iPhone 또는 iPad를 마운트할 수 있습니다.
$ mkdir ~/iphone
$ ifuse ~/iphone --udid 000000000000000000000000
이렇게 하면 iPhone이 컴퓨터에 디스크로 마운트됩니다. 더 나아가 더 많은 데이터를 살펴보고 싶다면 이 superuser 게시물이 꽤 유용하며, 이 게시물에서는 usbmuxd 도구 사용법을 다룹니다.
발생할 수 있는 오류 해결하기
ifuse에서 Invalid device UDID specified, length needs to be 40 characters 오류가 발생할 수 있습니다. iPhone X부터 Apple은 UDID에 기존의 40바이트 형식 대신 24바이트와 대시(-)를 사용하도록 변경했습니다.
Failed to connect to lockdownd service on the device. Try again. If it still fails try rebooting your device.이 표시되면 기기가 연결되어 있고 “이 컴퓨터를 신뢰하겠습니까?” 대화 상자가 표시되어 있지 않은지 확인하세요. 먼저 신뢰를 승인해야 합니다. 그다음 ERROR: Device 000000000000000000000000 returned unhandled error code -13이 표시되면 기기를 분리했다가 다시 연결해야 합니다.
이 과정에서 iOS 기기에 연결하려 하는 다른 애플리케이션이 PC나 Mac에서 실행되고 있지 않은지 확인하는 것이 좋습니다.
iOS 기기를 하나만 마운트할 예정이라면 ifuse ~/iphone만 실행하면 됩니다.
usbmuxd?의 사전 릴리스 버전이 필요한 경우
usbmuxd는 자주 업데이트되지 않으므로, 새 iOS 버전이 출시되었을 때 지원되지 않는 경우가 있습니다. 이를 해결하려면 아래와 같이 최신 개발 버전을 설치할 수 있습니다.
brew unlink usbmuxd
brew install --HEAD usbmuxd
brew unlink libimobiledevice
brew install --HEAD libimobiledevice
brew cask uninstall osxfuse
brew cask install osxfuse idevicepair
탈옥한 기기에서 FUSE로 USB를 통해 앱 데이터에 접근하기
방법은 위와 완전히 같습니다. 기기를 탈옥하면 처음부터 더 많은 데이터가 보입니다. 멋지죠?
Filza의 WebDAV 서버로 iOS 루트 파일에 접근하기
탈옥한 iOS 기기에서는 Cydia를 통해 Filza라는 파일 관리 앱을 설치할 수 있습니다. Filza 설정에서 WebDAV 서버 모드를 켤 수 있습니다. 다른 기기에서 iOS 기기에 접근하는 꽤 간단한 인터페이스를 제공하지만 보안은 매우 취약합니다. WebDAV는 웹 데이터를 다루는 매우 일반적인 메커니즘이며, Filza에 내장된 웹 인터페이스를 비롯해 이에 접근할 수 있는 클라이언트가 많습니다. 웹 브라우저로 기기에 연결하면 인터페이스가 표시됩니다. 간단합니다.
AFC2로 USB를 통해 iOS 파일에 접근하기
AFC2란 무엇인가요?
AFC는 “Apple File Conduit”의 약자로, iOS 기기에서 호스트 컴퓨터로 데이터를 전송하는 Apple 자체 메커니즘입니다. AFC는 모든 iOS 기기에서 실행되지만 제한된 데이터에만 접근을 허용하도록 잠겨 있습니다. “AFC2”는 탈옥 커뮤니티가 만든 일련의 도구에 붙은 별칭으로, AFC를 모방하면서 기기 전체에 접근할 수 있게 해 줍니다. 최신 AFC2 구현은 Cannathea가 만들었으며 GitHub에서 구할 수 있습니다.
AFC2는 Cydia에서 설치할 수 있으며, 설치하면 AFC 클라이언트로 기기 전체를 탐색할 수 있습니다.
탈옥한 기기의 모든 데이터에 접근하는 다른 방법
iOS 8이 출시되기 전에는 탈옥한 기기를 위한 Cydia 플러그인이 여러 개 있었으며, 이를 사용하면 iPhone이 연결될 때 USB 메모리처럼 표시되도록 할 수 있었습니다. 안타깝게도 이러한 플러그인은 최신 iOS 버전에서는 더 이상 지원되지 않습니다.
마운트한 iOS 기기에서 삭제된 파일 복구하기
iPhone이나 iPad를 드라이브로 마운트할 수 있다면 탈옥한 기기의 파일 시스템을 직접 조작하여 삭제된 파일을 복구할 수 있다고 생각할 수 있습니다. 안타깝게도 iPhone의 파일 시스템은 암호화되어 있어 이런 방식으로는 파일을 복구할 수 없습니다. 데이터 조각을 찾더라도 복호화할 수 없습니다. 각 파일에는 고유한 암호화 키가 있으며, 파일을 삭제하면 그 키도 폐기됩니다.
Apple의 iOS 보안 가이드의 17페이지 “아키텍처 개요”에서 이를 간단히 다룹니다.
데이터 파티션에 파일이 생성될 때마다 데이터 보호는 새로운 256비트 키(“파일별” 키)를 만들어 하드웨어 AES 엔진에 전달하며, 이 엔진은 파일이 플래시 메모리에 기록될 때 AES-XTS 모드로 이 키를 사용해 파일을 암호화합니다. A7, S2 또는 S3 SoC가 탑재된 기기에서는 AES-CBC가 사용됩니다. 초기화 벡터는 파일 내 블록 오프셋으로 계산되며, 파일별 키의 SHA-1 해시로 암호화됩니다.
마운트는 기존 파일에 접근하는 데는 유용하지만 복구에는 별로 도움이 되지 않습니다. 복구하려면 iTunes 또는 iCloud 백업, iCloud와 동기화된 데이터, 또는 데이터가 삭제되기 전에 만든 기기의 포렌식 이미지가 필요합니다.
보너스: iPhone 또는 iPad에서 Windows 컴퓨터 마운트하기
iOS 13부터 iOS에 SMB 지원이 도입되었습니다. 이를 통해 Windows 컴퓨터의 드라이브에 원격으로 접근할 수 있습니다. 방법은 다음과 같습니다.
- Windows 컴퓨터의 IP 주소를 확인합니다.
ipconfig명령으로 확인할 수 있습니다. - Windows 컴퓨터에서 공유할 폴더를 마우스 오른쪽 버튼으로 클릭하고
Properties→Sharing→Advanced sharing를 선택합니다. “이 폴더 공유”를 클릭합니다. - 공유 탭에서
Share...를 선택한 다음 드롭다운 메뉴에서 사용자 계정을 선택해 추가하고 “읽기/쓰기” 권한이 있는지 확인합니다. “공유”와 “적용”을 클릭하고 창을 닫습니다. - iOS 기기에서 Apple의 “파일” 앱을 열고 “서버에 연결”을 탭합니다.
smb://뒤에 PC의 IP 주소를 입력합니다. 그런 다음 “등록된 사용자”를 선택하고 Windows 계정 이름과 암호를 입력합니다.
이렇게 하면 Windows 드라이브가 iOS 기기에 표시됩니다.