카카오톡 첨부파일 '저장기간 만료' 복구 하는 방법! | 수정 2018.05.22

2018. 3. 4. 18:32Program

728x90

Thumbnail













[Image 1-1]


1. 카카오톡 에서 '캐시 데이터 삭제' 삭제를 하신분들은 첨부파일을 복구 하실수 없습니다.

2. IPhone은 제가 사용해본적이 없어서 구조를 알 수 없기때문에 확답을 드릴수가 없습니다.

3. 현재는 PC를 통해 복구를 하는 방식이지만, 추후 Application을 개발해서 배포할 예정입니다.


카톡 '저장기간 만료' 복구 프로그램 다운받기 : https://goo.gl/mPkQBG






※ 2018.05.22 수정 내역

 - Python magic bin 설치에 어려움을 겪는 분들이 계셔서 기존 wheel 파일을 다운받아 설치하던 부분을 

   간소화 하였습니다.








※ 진행 방법!


복구만 진행하실분들은 (프로그래밍도 잘모르고... 관심도 없고! 빨리 복구나 하고싶어요...! 하시는분들)

STEP 1 ~ 5 까지 진행 하시면 됩니다.



프로그램을 수정하여 복구를 진행하시고 싶은 분들은

STEP 1 ~ 4 / 6 ~8 까지 하시면 됩니다.











[Image 1-2]


시작하기전에 앞서 준비해야할 사항들이 있습니다.


SmartPhone

- ES 파일 탐색기

 - Wifi / 데이터 무제한


PC

 - Python 3.*

 - shutil (내장 라이브러리인지.. 기억이안나서 혹시나 써놨습니다.)

 - python-magic

 - python-magic-bin-0.4.14

 - python editor (파이참, Eclipse, Idle... 본인이 쓰기 편한걸로 사용하시면 됩니다.)






 STEP-1. 스마트폰에서 FTP 서버 개방


[Image 2-1]


스마트폰에서 ES파일 탐색기를 실행해주세요.

최근 Android 기기들은 기본으로 설치가 되어 있습니다.


없으실 경우 Google PlayStore에서 ES파일탐색기를 다운받아주세요.



[Image 2-2]


image 2-2에서 보시는것과 같이 동그라미 친 부분 저기 화살표를 클릭하시면

숨겨진 메뉴가 나타납니다.


[Image 2-3]


'PC에서 보기' 클릭!



[Image 2-4]


'PC에서보기' 를 클릭하시면 Image 2-4 처럼

현재 네트워크 연결상태를 감지(파싱)하여 보여주고 있고,

실행을 누르시면 SmartPhone에서 FTP 서버를 개방하게 됩니다.


설정을 통해서 계정이나 비밀번호등을 설정할 수 도 있지만,

보안상 웬만하면 공공장소가 아닌 집에서 사용하시는걸 권장드립니다.


'실행' 을 클릭하여 FTP 서버를 개방합시다.



[Image 2-5]


실행을 클릭 후

현재 할당받은 IP를 통해 3721 포트로 FTP 서버가 개방된것을 확인할 수 있습니다.

같은 네트워크 대역대(LAN)에서는 브라우저에서 ftp://192.168.0.40:3721/ 를 통해

스마트폰의 파일 및 폴더들을 보거나 다운받을 수 있습니다.


카카오톡 관련 파일을 다운받아야 하기 때문에 PC를 통해 진행하도록 하겠습니다.






 STEP-2. PC에서 FileZilla(파일질라) Client 다운로드

[Image 3-1]


Filezilla 공식 홈페이지 : http://filezilla-project.org

Filezilla Client Direct Download : 다운받기



[Image 3-2]


자막 때문에 가려져있지만 좌측

Download Filezilla Client 입니다.



[Image 3-3]


또 'Download Filezilla Client'를 클릭


[Image 3-4]


우측 Download 클릭

좌측은 Pro 버전이며, 유료입니다.



.






 STEP-3. FileZilla(파일질라) 설치


[Image 4-1]


Image 3-3에서 다운받은 파일질라를 실행하시면 Image 4-1과 같은 화면이 보입니다.

I Agree를 눌러 동의 하고 다음으로 넘어갑니다.




[Image 4-2]


Anyone who uses this computer (all users) : 모든 사용자 계정에 설치

Only for me (Yankee) : 본인 계정에만 설치


선택후 Next


[Image 4-3]


Desktop Icon 체크 후 Next

바탕화면에 Icon을 생성하기 위함입니다.


[Image 4-4]



저장 경로 선택 후 Next


[Image 4-5]


Do not create shortcuts : 바로가기 생성안함!

기호에 맞게 선택하시고, Next


[Image 4-6]


체크 해제 후 Next

Next만 연속으로누르면 저 쓸데없는 Avast를 깔게됩니다.



[Image 4-7]


Finish







 STEP-4. 카카오톡 복구에 필요한 파일 다운로드


[Image 5-1]


파일질라 실행 후

아까 Image 2-5에서 실행하여 나온

FTP 서버 주소와 포트를 입력하여 로그인합시다.

호스트(H) : 192.168.0.40

사용자명(U) : 생략

비밀번호(W) : 생략

포트(P) : 3721



[Image 5-2]


좌측 디렉터리는 PC

우측 디렉터리는 Phone 입니다.


Phone에서 Android/data/com.kakao.talk 이라는 경로에

contents 라는 폴더를 PC에 원하시는 위치로 빼오시면 됩니다.


[Image 5-3]


이렇게 빼오면 다운로드를 받기 시작하는데,

1년동안 한번도 데이터를 지우지않았더니, 엄청 오래걸립니다..


저는 무려 1.78GB네요.






 STEP-5. 카카오톡 '저장기간 만료' 복구 프로그램 실행


[Image 6-1]


카톡 복구프로그램 다운받기 : https://goo.gl/mPkQBG


해당 파일을 다운받으시고,

압축 해제 후 

카톡에서 빼온 contents 폴더와 같은 경로에 넣어두세요.


그리고 libmagicwin64-master 폴더에 들어가주세요.


[Image 6-2]


libmagicwin64-master 폴더 안에 ['libgnrux-0.dll', 'magic1.dll'] 이라는 파일이 있습니다.

위 2개의 파일을 

C:\Windows\System32\ 폴더에 복사해주세요.


[Image 6-3]


다시 이전 폴더로 돌아와서  cmd창을 열고 kakao_recovery.exe를 실행해주신뒤


카톡에서 빼왔던 contents 폴더와

다운받은 kakao_recovery.exe 파일을 한곳에 두고 실행해주시면 됩니다.




 복구 결과


[Image 6-4]


image 6-4 처럼

contents 폴더안에 result 라는 폴더가 생성된것을 볼 수 있고


result 하위로

audio, etc, img, video 라는 폴더가 생성된것을 볼 수 있습니다.


우측은 현재 복구되고 있는 파일들의 확장자를 출력중입니다.


[Image 6-5]


복구 된 사진 파일 입니다.

















아래부터는 복구 코드를 수정하고자 하시는 분들만 

진행해주시면 됩니다.




 STEP-6. Python 실행시 필요한 라이브러리 설치하기


[Image 7-1]


관리자 권한으로 command line(cmd)를 실행 한 후

pip install python-magic 을 입력해주시면 됩니다.







여기에 명령창 열기가 없을때?







[Image 7-2]


아까 Image 3-6 에서 다운받은 whl 파일도 설치하여 줍시다.

pip install python-magic-bin-0.4.14-py2 py3-none-win_amd64.whl


※ 2018.05.22 수정 

Image 6-1처럼

 pip install python-magic-bin 이라고 입력하여 설치하여 주시면 됩니다.





 STEP-7. Python을 이용한 카카오톡 복구 코드 작성


[Image 8-1]


저는 Pycharm을 주 Editor로 사용하며,

파일명은 kakao_recovery 라고 하였습니다.


[Image 8-2]







 STEP-8. 카카오톡 '저장기간 만료' 복구 코드 실행


[Image 9-1]


카톡에서 빼왔던 contents 폴더와

방금 만든 kakao_recovery.py 파일을 한곳에 두고


cmd창을 실행하여, 'python kakao_recovery.py' 를 입력하여 실행하시면

복구가 진행됩니다.















Q&A


Q. 동작방식? 원리? 어떻게 복구를 하는거죠?

- Kakao Talk에서는 첨부파일을 로컬에서도 데이터를 받기 때문에 기록이 저장됩니다.

그러한 데이터를 com.kakao.talk 이라는 패키지에 contents라는 폴더에 임시파일마냥 저장하게 됩니다.

하지만 이것을 파일명을 해시화 해서 암호화를 해놓았는데, 파일을 Hex값으로 봤더니 내용은 온전하였고,

때문에 Header를 보고 해당파일의 확장자를 알아내고, 파일명 뒤에 '.확장자' 를 붙여서 

다시 읽어낼수 있도록 만들었어요!



Q. 그럼 파일명을 붙여줄때 원본에다가 하지 왜 result라고해서 또 생성하나요?

- 제가 Forensic을 공부를 했었고, 지금도 꾸준히 하고있지만... 원본 데이터는 어떻게 될지 모르니 항상 

복제본을 이용한 분석이나 복구를 진행하여야 했어요!

이번 주제는 오픈소스로 진행하였기 때문에 본인에게 맞게 코드를 수정하셔서 진행해도 됩니다.



Q. Application으로 배포를 해주신다 했는데 언제 해주시나요?

- 저도 이제 Android를 입문하였고 공부하는중이며, 직장인이다보니 언제 까지라고는 확답을 드리기가 어렵네요.

코드가 어렵지 않다보니 직접만드셔서 쓰셔도 되고, 올해 안에는(?) 할 생각입니다.



Play List


Play List {


Youtube : {

Yankee 채널     : https://goo.gl/dzjK1T

Computer 꿀팁 : https://goo.gl/HmEE9f

Hacking          : https://goo.gl/pd4sVi

Game             : https://goo.gl/PddsU9

}

HomePage : {

BLOG             : http://gmyankee.tistory.com

FaceBook        : https://www.facebook.com/yankeetube/

}

GIT : {

Github            : https://github.com/yankeetube

Gist                : https://gist.github.com/YankeeTube/

}

}

728x90