Mac에서 매일 정해진 시간에 카카오톡 대화방을 요약해 Notion에 발행하는 자동화는 이미 돌아가고 있었습니다.
2026년 7월, 같은 흐름을 Windows에서도 만들려 했지만 시작부터 데이터 구조와 복호화 방식이 달랐습니다.
이 글은 Windows 카카오톡 요약 자동화 4부작의 첫 편으로, 왜 이 작업을 시작했고 세 번의 접근이 어디서 막혔는지 담았습니다.
목표는 화면을 긁는 프로그램이 아니었습니다. 내 PC에 저장된 내 대화를 구조화해 정해진 시간에 요약하는 로컬 자동화였습니다.
Mac에서는 오픈소스 kakao-cli를 고치고 보완해 백그라운드 요약 흐름을 만들었습니다.
날짜별로 대화를 가져오고 요약한 뒤 Notion에 발행하니 매일 놓친 내용을 다시 훑는 시간이 크게 줄었습니다.
문제는 Windows 사용자였습니다.
같은 자동화를 원하거나 관심을 보이는 사람은 많았지만, 현재 Windows KakaoTalk PC 환경에서 그대로 따라갈 만한 해결책을 찾기 어려웠습니다.
그래서 Mac 코드를 단순 이식하기보다 Windows에서 데이터가 저장되고 열리는 방식부터 다시 확인하기로 했습니다.

가장 빠른 길은 화면을 열고 OCR로 글자를 읽거나 마우스와 키보드를 자동 조작하는 방식이었을 겁니다.
하지만 창 위치와 해상도가 바뀌면 깨지기 쉽고, 과거 대화와 사용자·대화방 관계를 안정적으로 다루기도 어렵습니다.
제가 정한 기준은 KakaoTalk PC가 이미 저장한 로컬 DB를 읽고 대화방, 사용자, 메시지를 데이터로 연결하는 것이었습니다.
로컬 KakaoTalk 데이터
→ 대화방·사용자·메시지 매핑
→ 필요한 방과 날짜 선택
→ 요약 자동화
→ Notion 발행
이 구조가 잡혀야 사람이 화면을 보고 있지 않아도 백그라운드 작업으로 이어갈 수 있습니다.
처음에는 Windows의 users 폴더명이 userId나 특정 해시 조합으로 만들어진다고 가정했습니다.
folderbrute3.py부터 folderbrute5.py까지 만들고 병렬 계산도 붙였습니다.
테스트 데이터에서는 초당 130,944회 수준으로 값을 되찾았지만 실제 KakaoTalk 폴더명은 맞지 않았습니다.
참고 코드를 다시 읽자 폴더명을 역산하는 부분은 없었습니다.
users 아래에 이미 존재하는 40자 폴더를 나열하면 되는 일을 더 어렵게 풀고 있었습니다.

두 번째로 시도한 것은 공개된 과거 분석 자료의 AES-CBC 방식이었습니다.
userId와 pragma, 실행 파일의 고정 키 후보를 조합해 DB 앞부분에서 SQLite 표식을 찾는 접근이었습니다.
실행 파일을 스캔했지만 현재 설치 버전에서 필요한 고정 키를 찾지 못했습니다.
세 번째로 실행 중인 프로세스에서 숫자와 pragma 후보를 모았지만 실제 DB를 여는 조합은 나오지 않았습니다.
| 시도 | 막힌 지점 | 남은 교훈 |
|---|---|---|
| 폴더명 역산 | 실제 폴더와 불일치 | 존재하는 폴더부터 읽기 |
| 구버전 고정 키 | 현재 빌드에서 미발견 | 버전 차이를 먼저 확인 |
| 숫자·pragma 후보 | DB header 복호화 실패 | 키 생성 가정 재검토 |

세 번의 실패 뒤 질문을 바꿨습니다.
과거 공식으로 키를 새로 계산하려 하지 말고, 지금 실행 중인 KakaoTalk이 실제 DB를 열 때 무엇을 쓰는지 보기로 했습니다.
개인적으로는 이 전환이 이번 작업에서 가장 중요한 순간이었다고 봅니다.
실패한 코드를 더 빠르게 만드는 것보다 잘못 잡은 문제를 다시 정의하는 편이 먼저였습니다.

다음 편에서는 SQLCipher raw key를 직접 회수하는 v2 흐름으로 어떻게 전환했고, 14만 건이 넘는 메시지를 하나의 DB로 모았는지 이어가겠습니다.

| 복호화 스크립트에 버튼을 달았다 — React와 Python으로 만든 로컬 도구, 카톡대화방 복호화3 (0) | 2026.07.26 |
|---|---|
| 세 번 실패하고 바꾼 질문 — SQLCipher raw key가 전환점이었다, 카톡대화방 복호화2 (0) | 2026.07.26 |
| 비밀번호 없는 로그인, 패스키로 바꾸면 정말 안전할까 (0) | 2026.07.25 |
| 깃 커밋·브랜치 개념 — 세이브 포인트와 평행 세계 (0) | 2026.07.25 |
| 파이썬이 GIL을 벗었다 — GIL 없는 파이썬이 뭐고 왜 중요한가 (0) | 2026.07.25 |
댓글 영역