storycraft/node-kakao

라이브러리와는 관련 없지만 LOCO 프로토콜 관련해서 질문 드려도 되겠습니까..?

Opened this issue · 6 comments

* 구 버전을 쓰는 것 자체에 대해서 토론을 시작하지 말아주십시오. *

카카오톡이 계속 구버전 지원 중단하고, 최신 버전 UI가 마음에 들지도 않고, 특히 지금 사용 가능한 가장 오래된 버전인 9.5.0이 안드로이드 킷캣을 지원하지 않아서 안드로이드 킷캣 지원 마지막 버전인 8.9.3를 다시 동작하게 하려고 합니다만,

appVer 전송 부분 수정으로 앱 버전만 9.9.1으로 속여주면 휴대폰 인증 되고, 로그인도 되고, 친구 추가도 되고 다 되는데 이상하게 채팅 기능만 안 되군요. 다른 기능들은 그냥 TCP인데 채팅 기능은 겁나빠른 황소를 써서 그런 것 같은데, 혹시 8.9.3이 나온 2020년이랑 9.9.1이 나온 2022년 하반기 사이에 겁나빠른황소 접속 방식이 크게 바뀐 점이 있는지 여쭤보고 싶습니다.

node-kakao에서 구현된 방식도 쭉 봤는데 LCHATLIST, SYNCMSG 등 방식은 거의 비슷한 것 같은데 왜 안 되는 건지 모르겠습니다. 휴대폰 인증 받고 로그인하면 친구 목록은 다 뜨는데 채팅방 목록은 그냥 비어 있습니다. 메시지 보내기나 방 만들기도 안 되고, 채팅 관련 기능 중 유일하게 되는 것은 메시지 알림 수신 뿐이네요.

혹시 2020년에서 2021년 사이에 LOCO 접속 방식에 변화가 있었다면 알려주실 수 있습니까?

@storycraft 님께 한번 여쭈어 봅니다. LOCO 프로토콜을 잘 아시는 분을 찾기가 쉽지 않은 것 같습니다...

프로토콜에 변화가 있었는지는 모르겠습니다. 다만 이후 버전에서 tcp접속에 사용하는 공개키와 암호화 쪽에 변화가 생겨 계정이 정지 될 수 있으니 버전을 바꾸는건 별로 추천하고 싶지 않네요.

아... 감사합니다.

node-kakao가 지원 종료된 기간 사이에 통신 암호화 쪽에 변화가 생겼습니다.
변경된 프로토콜 암호화 부분은 키위톡 구현 쪽을 보면 나올껍니다.

계정 정지 가능성이 있으니 다음 부분을 주의하셔야합니다.

  1. 8.9.3의 경우 현재 최신 버전과 API 호출이 상당히 다릅니다.
  2. 실제 사용여부 관계 없이 여러 금융 관련 메뉴를 누르는 순간 카카오톡 앱 내 보안 모듈인 kamos가 돌아가며 카카오 서버에 카카오톡에 앱 서명키 데이터를 암호화하여 전송합니다.

추가적으로, 카카오톡 10.1.0 이전 버전의 경우 매우 심각한 보안 취약점이 존재하기에 절대 사용하지 않는 것이 좋습니다.
카카오 공지사항 참고

@hui1601 님의 댓글을 잘 읽었습니다

추가적으로, 카카오톡 10.1.0 이전 버전의 경우 매우 심각한 보안 취약점이 존재하기에 절대 사용하지 않는 것이 좋습니다.

어우;; 몰랐네요. 제 폰이 하나는 킷캣이고 하나는 마시멜로라서 9.7.5 이상으로 못 올라가는데, 리니지OS 커스텀 펌웨어 사용을 고려하거나, 롤리팝~오레오의 안드로이드 API를 직접 자바를 이용해서 시스템 프레임워크 형태로 백포팅하거나 해야하겠네요...

실제 사용여부 관계 없이 여러 금융 관련 메뉴를 누르는 순간 카카오톡 앱 내 보안 모듈인 kamos가 돌아가며 카카오 서버에 카카오톡에 앱 서명키 데이터를 암호화하여 전송합니다.

일단 제가 수정된 8.9.3을 설치했을 때, 옛날에 맛클에서 시스템 UI나 시스템 앱을 수정한 것처럼 재서명(sign)하지 말고 원본 APK의 META-INF를 그대로 쓰고 manifest도 그대로 두면서 /system 파티션에 설치해서 앱 서명 관련 문제가 발생할지는 모르겠지만, LOCO 암호화 쪽 변화가 생긴 것으로 봐선 이것 때문에 접속이 안 되는 걸 수도 있겠네요.

제가 안드로이드 젤리빈~킷캣을 거의 8년을 메인으로 써왔는데(마시멜로는 6년), 지금으로써 킷캣 지원을 원하는 건 너무 오바했다고 쳐도 지금 최신버전에서 7.1.2 누가 이하까지 지원 중단한 건 좀 너무하다 싶네요...