200달러 수신기가 나를 Bluetooth Protocol 리버스 엔지니어링 토끼굴로 이끌었다
Source: Dev.to

개요
모든 것은 한 여성이 마이크 선택을 도와달라고 연락을 해오면서 시작되었습니다. 저는 몇 년 동안 부업으로 음악을 만들어 왔기 때문에 오디오 장비에 대해 어느 정도 알 거라 생각했죠. 그녀는 라벨리어 마이크를 원했고, 저는 Shure MoveMic을 추천했습니다.
알고 보니, 이 마이크는 Shure의 독점 앱을 통해서만 블루투스로 작동합니다. Logic Pro에 연결하거나 iPhone에서 카메라 마이크로 사용하려면 $200짜리 수신기가 필요합니다. 하지만 여기서 핵심은—블루투스가 작동한다는 점입니다. 단지 그들의 앱 안에 샌드박스되어 있을 뿐이죠. 그들은 자체 데이터 전송 프로토콜을 사용하고 있습니다.
그래서 저는 이 완벽히 정상적인 블루투스 마이크를 추가 하드웨어 없이 집에서 어떻게든 사용할 수 있을지 파고들기 시작했습니다. 결국 블루투스 디바이스 스니핑에 관한 정보를 발견하게 되었고, $200에 대한 것이 아니라 독점 프로토콜을 깨는 경험을 원했습니다.
다음 단계
이제 시작할 준비가 모두 갖춰졌습니다: Mac, 개발자 계정, 그리고 PacketLogger가 준비돼 있습니다.
계획은? Shure 앱과 MoveMic 사이의 트래픽을 가로채고, 패킷을 분석하여 실제로 무슨 일이 일어나고 있는지 파악하는 것입니다.
GATT 프로파일을 분석하고, 독점 UUID를 찾아내며, 오디오 코덱을 역공학하고, 프로토콜을 바이트 단위로 조합해 나갈 예정입니다. 최종 목표—수신기 없이 직접 마이크와 통신하는 자체 클라이언트를 만드는 것입니다. 샌드박스된 앱도 없고, 순수 블루투스만 사용합니다.
주말 프로젝트가 될까요, 아니면 한 달짜리 토끼굴이 될까요? 프로토콜이 완전히 열려 있는지, 아니면 암호화와 디바이스 바인딩으로 잠겨 있는지 아직 모릅니다.
하지만 바로 그 점이 재미있는 것이죠.
파트 2 곧 공개 예정.