본문 바로가기
ETC/카카오톡 임시 이미지 가져오기

카카오톡 저장 기간 만료 파일 복구

by 손너잘 2018. 2. 10.
프로그램 받으러 가기 -> http://bperhaps.tistory.com/12

카카오톡으로 사진들을 주고받다 보면 저장기간이 만료되서 사진을 다운로드 하지 못하는 경우가 있다.

사진1. 저장 기간 만료로 파일을 불러올 수 없는 사진.
하지만 잘 보면, 다운로드는 불가능하지만 흐릿하게 해당 사진을 볼 수 있는것을 확인할 수 있다.
여기서 저 사진을 가져올 수 있으면 저장 기간을 놓쳐 다운받지 못한 사진도 받을 수 있지 않을까? 하는 의문을 품게 되었다.
먼저 카카오톡의 사진들의 위치를 알아내야 했고, 경로를 찾아 내었다.
카카오톡Media파일 저장 위치 : /Android/data/com.kakao.talk
해당 경로를 들어가면 다음과 같은 폴더들을 볼 수 있다.

사진2. 카카오톡 Media파일 위치
우리가 사용할 폴더는 contents 폴더이다. 대화방에서 주고받은 사진들의 정보들은 저 폴더안에 다 들어있다고 보면 된다.
해당 파일을 컴퓨터도 이동시킨 후 안의 내용물을 보면 ???? 가 나올 수 밖에 없다.

사진3. Contents 폴더의 내부

파일과 폴더들의 이름들이 해쉬화 되어있는것을 볼 수 있으며 심지어 파일들은 확장자도 존재하지 않는다.
처음에는 파일들이 암호화돼 있나? 하는 끔찍한 상상을 하였지만 다행이 그것은 아니었다.

그림3. HXD를 이용해 확인한 파일 형식

HXD를 이용해 파일들을 열어보니 파일 시그니처가 해당 파일이 무엇인지를 정확하게 명시해 주고 있었다.
필요한 정보는 모두 얻었다. 코딩만 하면 된다. 파이썬을 이용하여 코딩할 것인데, 파일 시그니처를 이용해 파일들의 확장자를 붙여줄 것이다.
원래는 사진, 동영상 정도의 파일만 있을 것이라 생각하여 라이브러리를 안쓰고 직접 시그니처들을 리스트에 넣어 비교할 예정이었으나 본인의 데이터(약 1년 6개월)를 분석한 결과

사진4. 파일들의 앞 4바이트 리스트

사진뿐만 아니라 다른 잡다한 파일의 시그니처도 확인되는걸 볼 수 있었다.
물론, 사진 동영상의 시그니처만 처리하고 나머지는 예외처리시켜버리면 라이브러리를 쓰지 않고도 충분히 가능하긴 하지만.. 그건 성격상 안맞기도 하고 (귀찮..) 그냥 라이브러리를 사용하기로 했다.
사용한 라이브러리는 python-magic이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# -*- coding: cp949 -*-
 
import sys
import os
import time
import shutil
import magic

 
# Referenced from "https://wikidocs.net/39"
def search(dirname):
    filenames = os.listdir(dirname)
    for filename in filenames:
        full_filename = os.path.join(dirname, filename)
        if os.path.isdir(full_filename):
            search(full_filename)
        else:
            path = time.strftime("%Y.%m.%d" , time.localtime(os.path.getmtime(full_filename)))
            extention = magic.from_file(full_filename, mime=True).split("/")[1]
            
            if not os.path.exists("./result/" + path):
                os.mkdir("./result/" + path)
 
            shutil.copy(full_filename, "./result/" + path + "/" + filename + "." + extention)     
 
if not os.path.exists("result"):
    os.mkdir("result");
 
search("/mnt/g/com.kakao.talk/contents")
 
cs
간단하게 작성한 코드이다. 결과를 보자

사진5. 결과

실행시켰을 경우 결과는 다음과 같고, 다운로드 기간이 지난 사진이라도 가져올 수 있는 것을 볼 수 있다.
물론, 원본사진은 아니기에 해상도가 떨어지는 부분은 어쩔 수 없다. 하지만 요즘 기술이 발달하여 딥러닝으로 해상도 올려주는 것이 있으니 확인해보면 좋을 것 이다. 아래 링크를 참고하시길..
채팅방 관련 db가 존재하므로 채팅방별 정렬을 시도하려 했지만, 해당 db를 가져오기 위해선 루팅이 필요하고 안드로이드 버전이 올라감에 따라 퍼미션이 많이 견고해 져서 루팅없이 adb로 가져오는 것이 불가능해 졌고, 현재 나와있는 루팅방법은 폰을 초기화 시켜야 하는 것 이므로.. 초기화 없이 하는 루팅방법이 나오지 않는 이상은 사실상 불가능한 것 같다.
.


댓글39

    이전 댓글 더보기
  • 익명 2019.05.09 00:28

    비밀댓글입니다
    답글

  • 익명 2019.12.03 05:50

    비밀댓글입니다
    답글

  • JR 2019.12.12 10:40

    안녕하세요,, 혹시 한글파일도 가능할까요,,
    답글

  • 익명 2019.12.12 15:36

    비밀댓글입니다
    답글

  • puhaha 2020.01.07 06:20

    복구 하고싶은 사진 파일이 핸드폰 교체전에 받았던 거면 불가능한가요?? 교체전 휴대폰으로 로그인해서 받는건 가능한가여?
    답글

  • ALICE 2020.03.01 00:04

    정말 감사드려요
    덕분에 원하던 사진들 복구 완료했습니다!ㅎㅎㅎ
    답글

    • 꽃물 2021.10.19 08:59

      죄송하지만 제가 위에 내용이 이해가 안가서요..
      꼭 복구해야하는 제출해야할 사진이 있는데..
      님이 하신 방법을 자세히 일반아줌마가 따라할수 있게 설명좀 부탁드려도 될까요?...

      염치불구하고 부탁드려요...

  • ddkdkdk 2020.04.28 18:22

    핸드폰을 갤럭시에서 아이폰으로 바꿨는데 아이폰에서는 다운받은 적 없는 만료된 파일은 어떻게하는게 좋을까요?? 정말 필요해서요 ㅜㅜㅜ답변 부탁드립니다. ㅠㅠㅠ
    답글

  • 제발 2020.07.02 21:39

    안녕하세여 만료된 액셀파일 복구가능할가요 ㅠㅠ 급한건이라..답변부탁드립니다

    답글

  • 답변부탁드려요 2020.10.03 14:12

    pdf,hwp 복구도 가능한가요
    답글

  • 배채원 2020.11.20 14:16

    아무것도 모르는 사람들은 좀 어려운데..뭔소리죠
    답글

  • 박성수 2021.03.19 11:23

    pdf파일은 복구할방법이 없을까요?
    답글

  • 김민준 2021.05.07 14:36

    아이폰은 저런 파일이 안 뜨는데 어떻게 해야할까요..???
    답글

  • 익명 2021.05.17 10:38

    비밀댓글입니다
    답글

  • 소학섭 2021.07.20 20:20

    지금부터 10일 지난 한글파일 복구를 하고 싶은데 도저히 무슨말씀인지 모르겠네요
    답글

  • 소학섭 2021.07.20 20:35

    아이폰12입니다

    답글

  • 질문 2021.08.11 21:00

    안녕하세요 혹시 txt, word, hwp 와 같은 문서도 복구 가능한가요?? ㅠㅠ 휴대폰에는 카톡 한번 삭제하면서 캐시데이터가 삭제된듯하고,
    Pc카톡에 파일은 남아있는데 기간이 만료되어서 다운받지 못한다고 합니다..
    답글

  • 알려주세요 2021.11.23 19:12

    아이폰 12 만료된 사진 복구 가능한가요???
    답글

  • 최태민 2022.03.22 18:45

    복구는 했는데 .octet stream 붙어서 파일을 열어 볼 수가 없는데 어떡하나요..

    답글

  • 익명 2022.07.18 09:19

    비밀댓글입니다
    답글

  • 프리지아꽃향기 2022.07.19 15:55

    꼭 복구해야할pdf파일이 있어요.
    다운받지않고 기간만료되어서..
    복구할수있을까요?제발
    답글