IceKakao — 카카오톡 PC 대화를 통째로 백업하는 데스크톱 앱 2026.08.20

IceKakao — 카톡 PC 대화, 되찾을 수 있는가? Phase 0 결과

카카오톡 PC의 암호화된 로컬 데이터를 직접 복호화해 대화·미디어·이름·프로필까지 통째로 백업하는 데스크톱 앱. 가장 큰 리스크였던 '복호화 가능성'을 실제 대화방 1,371개 메시지 완전 복원으로 증명한 Phase 0 기록.

카카오톡 PC의 대화를 통째로, 열람 가능한 형태로 백업하는 프로그램을 만들고 있다. 대화 텍스트만이 아니라 이미지·동영상·파일·링크까지, 그리고 사람과 방의 이름·프로필까지 카톡이 보여주던 그대로 복원하는 것이 목표다.

왜 만드나

카카오톡은 PC의 대화 데이터를 전부 암호화해서 로컬에 저장한다(.edb, .cng). 폰을 잃어버리거나 계정에 문제가 생기면 그 대화는 사실상 되찾을 수 없다. 서버의 미디어는 대개 14일이면 만료된다. "내 컴퓨터 안에 분명히 있는데 볼 수가 없는" 데이터를, 본인 PC·본인 계정이라는 안전 조건 위에서 다시 내 손에 돌려주는 도구다.

Phase 0 — "복호화가 되는가?"에 대한 답: 된다

가장 큰 리스크부터 깼다. 실제로 대화방 하나를 완전 복원했다 — 1,371개 메시지를 평문 SQLite로.

확인한 기술 사실:

  • 카톡 PC 대화 DB는 표준 SQLCipher 4다. cipher_page_size=4096, PBKDF2-HMAC-SHA512, kdf_iter=256000, per-file salt(파일 앞 16바이트).
  • 복호화 키는 방(.edb)마다 다르다. 32바이트 raw key를 카톡이 네이티브로 계산해 SQLCipher에 직접 주입한다. pragma·userId·chatId·salt 조합으로 역산은 실패했다.
  • 채택한 실증 경로는 메모리 키 추출이다. 카톡 실행 중 프로세스 메모리에 32바이트 raw key가 평문으로 존재한다. 이를 스캔하고 page1을 복호화해 SQLite 헤더로 검증하는 방식으로 키를 뽑아낸다.

이름과 프로필까지 복원

방별 대화 로그에는 숫자 id만 있다. 사람 이름·방 제목은 같은 메모리 키로 열리는 별도의 SQLCipher DB 두 개에 평문 UTF-8로 들어 있었다.

  • chatListInfo.edb — 방 id → 방 제목, 방 → 멤버 목록. 287개 방 전부 제목을 보유.
  • TalkUserDB.edb — userId → 이름/프로필. 2,859명. 표시 우선순위는 내가 저장한 이름 → 닉네임 → 알 수 없음(id).
  • 본인 탐지: "나와의 채팅"(MemoChat) 방의 유일한 멤버가 내 userId, 그 방 제목이 내 이름이다.

발신자 아바타는 카카오 CDN 썸네일을 GET으로 내려받아 확보한다. 방 대표사진은 단톡 합성 아이콘이라 저장된 URL이 없어 생략했다.

미디어와 링크

미디어는 대화 로그의 attachement(JSON)에 참조가 들어 있다 — 이미지·비디오·사진묶음·이모티콘별로 필드가 다르다. 만료 전이면 url을 그대로 내려받아 원본을 확보한다. 링크는 chatLinkInfo.edb를 같은 방식으로 복호화해 복원한다.

만료된(14일 이상) 로컬 미디어는 .cng 파일로 남아 있는데, 현재 빌드의 .cng 암호화는 과거 문서에 기록된 썸네일 방식(AES-128-CBC)과 달라졌다. DB가 SQLCipher4로 세대교체된 것과 같은 흐름이다. 이 부분(만료 미디어 복구)은 별도 리버싱 스파이크로 후순위에 두었다 — 있으면 좋은 보너스지, v1의 전제는 아니다.

스택과 출시 범위

  • Tauri 2 + Rust 코어. 작은 용량, IP 보호, macOS 이식 용이, 라이선스·자동 업데이트 내장.
  • Windows 우선, 검증 후 macOS.
  • v1은 일회성 익스포터, v2는 상시 아카이버. 서버 14일 만료 때문에 "상시로 계속 긁어 모으는" 기능이 결국 핵심 셀링포인트가 된다.

지금까지

복호화, 방별 백업, 이름·프로필 복원, 미디어 다운로드, 아이콘, 후원 배선까지 Phase 1의 뼈대를 세웠다. 남은 것은 방 순회 자동화(카톡이 "최근 연 방"만 메모리에 올리므로, 전체 방의 키를 커버하려면 순회가 필요하다)와 만료 미디어 복구다.

가장 무서운 질문 — "애초에 복호화가 되긴 하나?" — 에는 이미 답했다. 이제부터는 만드는 일이다.

IceKakao — 카카오톡 PC 대화를 통째로 백업하는 데스크톱 앱 프로젝트로