Basilica android

sharku.egloos.com



카카오톡 분석하기 (1) - sqlite 파해치기 by sharku

카카오톡에서 친구목록을 가져오도록 하겠습니다.

먼저 이번 글을 마스터하기 위해서는 기본적으로
sqlite3 의 기본 명령어를 알아야하고
adb shell 기능이 설치 되어있어야 합니다.
(그리고 리눅스 명령어는 기본이겠죠..??^^;)
간단한 검색으로 설치와 숙지가 가능한 것들이니 숙지하고 진행하도록 합시다.

순서로는
1 *.db파일(sqlite) 분석하기
2. python을 이용한 명령어 구성
3. 실행
정도가 되겠습니다.

아마도 1번이 제일 오래 걸릴것 같은데 시작해보도록 하겠습니다.

먼저 카카오톡의 db가 저장되어있는 곳을 찾아가보겠습니다.
보통 저장되어있는 /data/data/ 폴더 내에
리스트를 살펴보면
..
[여기서 잠깐!] -루팅을 안한경우...
살펴보기전에 cd /data/data 라는 명령어를 치게 되면 실행이 되지 않습니다.
루트권한으로 바꿔야 하죠.
su 명령어를 사용합니다.

혹여 루팅이 어렵다면 다른 방법도 있습니다.
파일을 직접 복사해와서 분석하는 방법인데 아래에서 설명하는 폴더에 들어가서 필요한 파일을 복사해와서 이후 기능을 실행하면 됩니다.
다음의 위치에 db 파일이 자리잡고 있습니다.
더 이동해서 database 폴더내의 목록까지 조회해봅니다.

이 내용을 이렇게 자세히 다루는 것은 앞으로 대충 다룰려고 이럽니다..ㅋ
보이는 대로 KakaoTalk.db라는 파일이 있고 대소문자를 구분해서 다음 명령어를 실행시키면 db에 접속이 가능합니다.
이 때 대소문자를 구분하지 않고 소문자로만 쓰게 되면
소문자로 된 파일(kakaotalk.db)이 생성되어 sqlite가 실행되니 주의해야 합니다.


이제 테이블들이 뭐가 있는지 살펴보겠습니다.
테이블을 살펴보는 명령어는 여러가지가 있겠지만 간단한 .tables를 사용하겠습니다.
여기서부터는 개인적으로 복잡하다고 생각합니다.. sql 쿼리문을 잘 못하기에..(삐질삐질...)
friends라는 테이블에 집중하겠습니다. @.@
이제부터 복잡해지는데.. schema 라는 명령어를 사용해서 필요한 자료를 찾아내겠습니다.
schema라는 명령어는 간단하게 생각하자면 테이블의 속성을 살펴보는겁니다.
.schema friends 라는 명령어를 실행시킵니다.

@.@...... 역시 예상대로 아주 복잡한 스키마를 가지고 있습니다...

하나씩 자세히 본다면 키값들과 채팅아이디값 폰번호 이름 등등 많은 속성들이 있습니다.
이 값들을 실제 출력한다면 아주 유명한 쿼리값인 select * from friends; 라는 명령어를 사용하면 됩니다.
그러면 cmd 창이 마구마구 올라가는 대참사가 벌어지게 되어서 여기에는 따로 올리지 않겠습니다..
대략 몇개만 캡쳐해보려 했으나 의미가 없어서.. 모두 암호화 되어서 저장되는것 같습니다.

그래서 우선은 여기까지 하고 다음은 암호화 함수를 찾아보도록 하겠습니다..



핑백