검색결과 리스트
개발 프로그램/카카오톡에 해당되는 글 1건
- 카카오톡 1일차 (3)
글
카카오톡의 프로토콜을 분석.
분석방법은 패킷 분석.
카카오톡의 패킷을 어떻게 잡을 것인가?
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 용 카카오톡을 만드는 일 따위는 하지 않으려 한다.
왜냐면 기껏 만들어봐도, 곧 막힐테니까...
처음에 json으로 받아오는 정보는 서버 푸시를 위한 정보로 보여집니다. 각 스마트폰 단말기마다 접속하는 서버 주소와 포트정보등이 있는데 브로커 서버는 연결이 분산되도록 해주는 역할을 해줍니다. 네이트온 메신저도 처음에 어떤 서버에 접속을 할지를 받아서 연결이 됩니다.
혹시 아직도 카카오톡 프로토콜 연구중이시면 같이 해도 될 것 같은데요 ㅋ
3g 에서는 암호화를 하지 않는다더군요, 그럼 3g 해킷을 캡쳐만 하면 될 것 같은데요
초기에 재미삼아 조금 해 보던건데,
안타깝게도 더 이상 분석은 어려울 것 같습니다.
(카톡에 입사하려다 취소한 사람으로서;;)