posted by 블르샤이닝 2022. 10. 11. 09:34
728x90

아이폰 공유앨범에 대한 내용(photoCloudSharingData)

 

출처 : https://gforce4n6.blogspot.com/2020/09/sharing-is-caring-overview-of-shared.html

 

4n6 Ninja

  Sharing is Caring – An Overview of Shared Albums in iOS   This blog post is based on research conducted in collaboration with Daniel Ogden...

gforce4n6.blogspot.com

 

이 블로그 게시물은 Daniel Ogden 및 Alexis Brignoni와 공동으로 수행한 연구를 기반으로 합니다.

Geraldine Blay가 작성한 게시물

 

격리와 격리의 이 시기에 우리는 가상으로만 공유할 수 있습니다. iOS/MacOS 플랫폼에서 추억을 공유할 수 있는 방법 중 하나는 공유 앨범(이전에는 iCloud 사진 공유)을 사용하는 것입니다. 공유 앨범을 통해 사용자는 선택한 사람들과 사진 및 비디오를 공유할 수 있으며 구독자는 자신의 사진 및 비디오를 추가하고 댓글을 달 수 있습니다. 

 

iOS에서 공유 앨범을 활성화하려면 사용자가 설정으로 이동하여 Apple ID - iCloud - 사진 - 공유 앨범을 클릭합니다. 공유 앨범은 Windows, macOS 및 Apple TV에서도 활성화할 수 있습니다. 자세한 내용은  https://support.apple.com/en-us/HT202786 을 방문하십시오.

 

방법론 

 

이 테스트에는 iOS 13.5.1을 실행하는 iPhone 7 Plus가 사용되었습니다. 

 

다음 공유 앨범이 기기에서 생성되었습니다.

 

1. 테스트 전화의 공유 앨범 - Apple ID와 연결된 이메일을 사용하여 두 명의 사용자와 공유합니다. 

 

2. 다른 iOS 장치의 공유 앨범 - 테스트 전화에 공유됨. 

 

3. 장치가 비행기 모드(및 네트워크 연결이 끊긴 상태)에 있는 동안 생성된 공유 앨범. 따라서 수신자는 전화 추출이 완료되기 전에 요청을 수신/수락할 수 없습니다. 

 

참고: 테스트의 이 특정 부분에서 흥미로운 일이 발생했습니다. 전화기는 대략 8-10시간 후에 비행기 모드에서 해제되었고 앨범은 어디에도 없었습니다. 앨범을 공유한 사용자가 알림을 받았지만 휴대전화에서 사라졌습니다. 

 

4. 테스트 전화에서 생성된 공유 앨범 – 두 명의 사용자와 공유되었으며 그 중 한 명은 위의 항목 1에 언급된 첫 번째 앨범에 대한 초대를 이미 수락했습니다. 

 

5. macOS에서 생성된 공유 앨범. 초대장이 테스트 전화로 전송되었고 수락되었습니다. 전화에 표시된 앨범 제목을 볼 수 있었지만 사진이 전송되기 전에 전화가 비행기 모드로 전환되었습니다. ** 휴대전화가 비행기 모드에서 해제되고 사진이 전송되어 차이점을 확인하기 위해 다른 추출도 수행되었습니다. ** 

 

6. 테스트 전화에서 공유 앨범이 생성되었고 다른 iOS 사용자에게 초대가 공유되었으며 전화가 비행기 모드로 설정되었습니다. 우리는 테스트의 파트 3을 반복하는 것에 대해 궁금했습니다. 이번에는 전화기가 8-10시간이 아닌 짧은 시간 동안만 비행기 모드로 유지되었습니다. 전에 남아있었습니다. 

 

7. 사용자의 Apple ID와 연결된 전화 번호를 사용하여 사용자와 공유된 테스트 전화에서 공유 앨범이 생성되었습니다.

 

전체 파일 시스템 checkm8 추출(UFED 4 PC 사용)은 앨범이 생성되기 전에 기준선으로 획득되었습니다. 또한 위에서 언급한 각 앨범이 생성된 후에 전체 파일 시스템 checkm8 추출을 얻었습니다. Physical Analyzer 7.35 및 iLEAPP v 1.6을 사용하여 추출을 처리했습니다. 

 

결과

 

아래 스크린샷  은 기준 이미지를 촬영할 때 PhotoCloudSharingData  디렉터리의 기본 구조를 보여줍니다. 이 시점에서 공유 앨범을 받거나 추가하지 않았습니다. 여기에는  Caches  및  INFLIGHT_JOBS  하위 디렉터리와  서버 구성  파일이 포함되어 있습니다. 

diskcacherepository.plist  파일  을 제외하고 Caches 하위 디렉토리는 비어  있습니다.

 

 

 



테스트 장치에서 공유 앨범이 생성되면  private/var/mobile/Media/PhotoData/PhotoCloudSharingData/ 디렉터리에  다음과 같은 몇 가지 항목이 포함됩니다.

 

 

 

DsID*( private/var/mobile/Media/PhotoData/PhotoCloudSharingData/<DsID> )로 명명된 하위 디렉토리 내에서 공유 앨범을 찾습니다. 

 

*참고: iPhone Wiki에 따르면 DsID는 Directory Services Identifier를 나타내며 "AppleID 계정을 식별하는 방법"입니다(Apple 고객이 일련 번호를 가지고 있는 것처럼 생각하십시오 :-p). 

 

 

 

이러한 각 공유 앨범(   기기 소유자의 Apple ID에서 공유되었거나  기기 소유자의 APPLE ID  공유되었는지 여부에 관계 없이  )은 별도의 GUID로

private/var/mobile/Media/PhotoData/PhotoCloudSharingData/<DsID >/ 디렉토리

예를 들어 아래 스크린샷에서 2개의 공유 앨범을 볼 수 있습니다.

 

 


 

 

이러한 각 공유 앨범 디렉토리에는 다음이 있습니다.

- a  DCIM_CLOUD.PLIST : 이 plist에는 다음이 포함 됩니다.

·       DCIMLastDirectoryNumber  (해당 앨범에 둘 이상의 DCIM 디렉토리가 있는 경우)

·       DCIMLastFileNumber : DCIM 디렉토리에 있는 사진의 수를 나타냅니다. 또한 이미 존재하는 공유 앨범에 사진이나 비디오를 추가하면 추가된 항목 수만큼 DCIM_CLOUD.plist의 DCIMLastFileNumber 필드가 증가함   확인  했습니다   . 

공유 앨범 내에 둘 이상의 DCIM 디렉토리가 있는 경우 어떤 일이 발생하는지 알아보려면 추가 테스트가 필요합니다. 

 

 

 

 

  앨범 제목,  CloudOwnerHashedPersonID , 클라우드 소유자 이메일, 이름 및 성, 해당 앨범에 대한 공개 URL 활성화 여부, 구독 날짜(앨범이 해당 사용자와 공유된 경우) 및 클라우드 관계 상태*가 포함된 Info.plist *. 

CloudOwnerHashedPersonID는 아래에 설명 된  cloudSharedPersonInfos.plist  에도 나타납니다. 

 

 

 

 

**참고: CloudRelationshipState  필드 에 대해서는 더 많은 연구가 필요  합니다. 테스트에서 "0"과 "2" 값만 찾을 수 있었습니다. "Cloud Relationship State"가 "0"인 앨범도 테스트 사용자가 만든 앨범이었고 관계 상태가 "2"인 앨범은 그녀와 공유 된 앨범이었습니다. 그러나 이것은 완전한 우연의 일치일 수 있으며 더 많은 테스트가 필요합니다. 

 

- 해당 앨범의 사진/비디오가 포함된 하위 폴더. 해당 디렉토리의 명명 규칙은  100CLOUD ***로 나타납니다. 

 

***참고: 공유 앨범에 이러한 디렉토리가 둘 이상 있을 수 있습니다. 아직 충분한 사진/비디오가 포함된 앨범을 만들지 않았습니다. 테스트할 항목 목록에 있지만 이 블로그 게시물을 계속 지연하고 싶지는 않았습니다. 위에서 언급한 DCIMLastDirectoryNumbe  필드가 이와 관련이 있다고 생각합니다  .

 

 

기본  PhotoCloudSharingData 디렉토리에는 diskcacherepository.plist  및  sharedAssetsPrefetchCount.plist 가 포함된  Caches  라는 하위 디렉토리도 있습니다. 

 

 

 

  

PhotoCloudSharingData  디렉터리 에도 있는 중요한 데이터를 포함할 수 있는 다른 파일  은 다음과 같습니다.

 

 serverconfiguration : maxnum.ownedAlbums  maxnum.photosPerAlbum 및  maxnum.commentsPerPhoto 와 같은 구성 설정을 포함합니다  .

 

 cloudSharedEmails.plist:  이 장치와 앨범을 공유한 Apple ID와 연결된 이메일을 포함합니다(앨범이 공유되었기 때문에 테스트 장치에서 사용된 AppleID 포함).

 

 cloudSharedPersonInfos.plist : 테스트에서 앨범이 공유되는 즉시 이 plist는 ********-****-****-******** 형식의 GUID를 채웁니다. *******, 앨범을 공유한 사용자의 APPLE ID 이메일(초대에 사용된 경우 전화번호)이 포함됩니다. 그러나 이 사용자가 공유 앨범 초대를 수락하는 경우 CloudOwnerHashedPersonID를 사용하여 다른 항목이 생성되며 여기에는 APPLE ID와 연결된 이름, 성 및 전체 이름이 포함됩니다.  

 

이 plist를 기본적으로(예: Mac 사용) 볼 수 있지만 좋아하는 포렌식 제품군을 볼 수 있지만 Alexis Brignoni는 iLEAPP 에서 이러한 plist 중 일부에 대한 지원을 추가할 만큼 친절  했습니다 . 그건 그렇고, Twitter(@AlexisBrignoni)에서 Alexis를 팔로우하고 https://abrignoni.blogspot.com에서 그의 블로그를 확인하세요.

 

다음은 테스트 이미지 중 하나에서 iLEAPP를 실행하여 편집한 스크린샷입니다. 

 

cloudSharedEmails.plist:

 

 


 

 

cloudSharedPersonInfos.plist :

 

 

 

 

 

 테스트 전화의 모든 공유 앨범에서 DCIM_CLOUD.plist 의 데이터  (iLEAPP의 iCloud 공유 앨범 데이터 섹션 아래)

 

 

 

 

 

모든 앨범의 Info.plist 의 데이터   (iLEAPP의 iCloud 공유 소유자 정보 섹션 아래 – 스크린샷에서 생략된 파일 경로 열)

이전에 언급한 누락된 앨범(아래 스크린샷에서 빨간색으로 표시됨)이 파일 시스템에 여전히 표시되었지만 실제 장치에는 표시되지 않고 이와 관련된 다른 데이터가 채워지지 않은 방법에 주목하십시오. 

 

 

 

 

 

평소와 같이 연구는 단지 당신을 안내하기 위해 고안되었습니다. 항상 모든 것을 이중, 삼중 확인하십시오 - 신뢰하되 확인하십시오! 

 

이것으로 이 블로그 게시물의 파트 1을 마칩니다... iOS 및 MacOS의 공유 앨범과 관련된 추가 아티팩트에 대한 파트 2를 계속 지켜봐 주십시오. 

 

 
728x90