카카오톡의 프로토콜을 분석.
분석방법은 패킷 분석.

카카오톡의 패킷을 어떻게 잡을 것인가?

1. 데스크탑에 USB 타입의 무선네트워크를 장착
2. 핸드폰에 카카오톡을 설치
3. 데스크탑의 무선네트워크를 무선AP 로 만들어주는 프로그램 설치(이름 기억 안남)
4. 핸드폰에 WIFI 를 데스크탑 AP 로 연결
5. 데스크탑에 wireshark 실행
6. 핸드폰에서 카카오톡 실행

또 다른 방법

1. 데스크탑에 VMware 설치
2. VMware 에 안드로이드 설치
3. 안드로이드에 카카오톡 설치
4. 데스크탑(host)에서 wireshark 실행
5. 안드로이드에서 카카오톡 실행

그리고 그 밖에도 AP에서 패킷을 잡는 등 많은 방법이 존재할 것으로 예상.

개인적으로 환경구축이 편리한 두번째 방법을 채택.
카카오톡 버젼은 2.0.1
사실 현재 2.0.3 버젼이 있긴 하나, 안드로이드에서 설치가 되지 않아 2.0.1로 시도.


카카오톡 설치 및 인증을 저친 후 접속한 페이지.


페이지에 내용은

{"servers":[{"url":"stomp://${login}:${passcode}@203.246.172.108:9005","ssl-url":"stomp+ssl://${login}:${passcode}@203.246.172.108:10005","host":"203.246.172.108","port":9005},{"url":"stomp://${login}:${passcode}@203.246.172.108:80","ssl-url":"stomp+ssl://${login}:${passcode}@203.246.172.108:443","host":"203.246.172.108","port":80}]}

아무튼 결론은 json 을 가지고 통신을 하고 있음.
위 페이지가 무엇을 하는지는 살펴봐야 겠음.

메세지를 전송해 보았다.


매번 메세지를 보낼때 마다, 클라이언트(카카오톡)쪽에서 서버로 SYN 을 통해서 서비스 유무를 확인한다.
포트는 https 인 443 포트.

그리고 서비스 중이면, https 프로토콜을 통해서 암호화된 메세지를 주고 받는다.
젠장.....암호화 프로토콜이다;;;

고민고민..

 참고로 2.0 이전의 구버전 카카오톡은 SSL 을 사용하지 않는다.
하지만 어차피 앞으로는 모두 SSL 로 통신을 할 것이고, 그렇기 때문에 구버젼으로 PC 용 카카오톡을 만드는 일 따위는 하지 않으려 한다.
왜냐면 기껏 만들어봐도, 곧 막힐테니까...