본문 바로가기
study/iOS

07 Instagram Artifact Analysis: Tool Creation

by 우저미 2025. 4. 30.

 

DM 

 

1. 채팅방 당 메시지 개수 

경로 : User App Files/com.burbn.instagram/Library/Application Support/DirectSQLiteDatabase/<UID>.db 의 message 테이블

(30876..) - 채팅방 수: 26개, 전체 메시지 수: 357개, 평균 메시지 수: 13.5개, 최대 메시지 수: 21개, 최소 메시지 수: 2개

(63288..) - 채팅방 수: 24개, 전체 메시지 수: 242개, 가장 빈도 높은 메시지 수: 11개(24개 중 16개 채팅방), 최대 메시지 수: 21개, 최소 메시지 수: 1개

 

2. 메시지 파싱 

1) 설치 모듈

pip install biplist : iOS/macOS에서 사용하는 .plist(Binary Property List) 파일 읽기, 쓰기

pip install pytz : 시간대 변환 도구 

 

2) 하나의 plist에 대한 파싱

 

3) 하나의 디렉터리 내에 여러 plist에 대한 모든 메시지 파싱 

 

 

follow list

 

1. shared_bootstraps.plist 분석

plist의 모든 데이터 파싱 후 txt 파일로 저장 

파란 부분이 전부 1명에 대한 데이터 

컬럼명 의미 설명
username 인스타그램 ID → userName 항목에서 UID 인덱스로 매칭
full_name 인스타 프로필 이름 → fullName 항목
profile_pic_url 프로필 사진 URL → profilePicUrl 항목
pk 내부 사용자 고유 ID (숫자) → pk 항목
followStatus 나와 상대의 팔로우 관계 → followStatus 항목 (0~3)
followed_by 상대가 나를 팔로우하는지 여부 → followed_by 항목 (True/False)
is_bestie 친한 친구 여부 → is_bestie 항목
is_business 비즈니스 계정 여부 → is_business 항목
is_verified 인증 계정 여부 (파란 체크) → verified 항목
biography 프로필 자기소개 문구 → biography 항목
externalURL 프로필 외부 링크 URL → externalURL 항목
friendScore 나와의 친밀도 점수 → friendScore 항목
category 계정 카테고리 → category 항목 (ex: 개인블로그, 작가 등)
mutualFollowersCount 서로 맞팔한 친구 수 → mutualFollowersCount 항목
is_private 비공개 계정 여부 (없으면 제외, 추가로 확인)
media_count 업로드한 게시물 수 → media_count 항목

 

2) csv 변환하여 분석

필드명 의미 상세 설명
username 사용자 이름 (아이디) 인스타그램 상에서 사용하는 로그인 ID 또는 @아이디 (예: zehiiu)
full_name 프로필 이름 인스타그램 프로필에 표시되는 사용자 이름 (본명, 별명 등 자유롭게 작성)
profile_pic_url 프로필 사진 URL 사용자의 인스타그램 프로필 이미지 URL (CDN 경로)
pk 사용자 고유 ID (Primary Key) 인스타그램 내부에서 계정을 식별할 때 사용하는 고유 숫자값 (username과 별개로 고정됨)
followStatus 나와 상대방의 팔로우 상태 관계를 숫자로 표시, 0: 요청 없음, 1: 팔로우 요청 보냄, 2: 내가 팔로우 중, 3: 서로 팔로우(맞팔)
followed_by 상대방이 나를 팔로우하는지 여부 상대방이 나를 팔로우하고 있다면 True, 아니면 False
is_bestie 친한 친구 여부 인스타그램 스토리에서 "친한 친구(베스트 프렌드)" 리스트에 추가되어 있는지 여부 (True/False)

다른 유의미한 데이터는 0, null 등으로 비어있음

 

3. 일부 UID 디렉터리에는 shared_bootstrap.plist가 없는 이유 (추측)

1) 비행기 모드 → 팔로워, 팔로잉 목록 안보임

2) iTunes 백업은 "앱이 동적으로 생성하는 파일" 은 무조건 다 백업하진 않음. 백업 규칙에 따라 일부 파일이 누락될 수도 있음

3) shared_bootstrap.plist는 앱이 필요할 때만 생성하기 때문에 모든 UID마다 항상 존재하지는 않음.

'study > iOS' 카테고리의 다른 글

06 Instagram Artifact Analysis  (1) 2025.04.10
05 SQLite  (0) 2025.04.10
05 Artifact Analysis of iOS Default Apps  (0) 2025.04.10
04 Imaging#3  (1) 2025.03.25
03 Imaging#2  (0) 2025.03.20