2008-09-22 7 views
8

내 친구가이 질문을 제기했습니다. 그는 최근에 그의 심장 박동수를 추적하고 하루 동안 자신의 컴퓨터에 심장 박동수를 업로드 할 수있게 해주는 가민 심장 박동수 모니터를 구입했습니다.디바이스에서 가져온 바이너리 데이터 세트를 리버스 엔지니어링하는 방법은 무엇입니까?

유일한 문제는 garmin USB 장치 용 Linux 드라이버가 없다는 것입니다. 그는 모델 번호와 사용자 세부 정보와 같은 일부 데이터를 해석하고 기본적으로 우리가 가정 한 몇 가지 이진 데이터 테이블이 있음을 확인했습니다 그의 심박수 및 녹음 된 시간의 일련의 녹음을 나타냅니다.

구조에 대해 모르는 경우 데이터를 리버스 엔지니어링 할 때 어디에서 시작하나요?

답변

4

나는 동일한 문제를 가지고 있었고 처음 Garmin 기기 용 도구의 크로스 플랫폼 버전을 완성하는 것을 목표로하는 Google Code에서이 프로젝트를 발견했습니다 ... 참조 : http://code.google.com/p/garmintools/. 이 프로젝트의 첫 페이지에는 필요한 프로토콜에 대한 링크가 있습니다. Garmin은 공개적으로 공개 할 수있을 정도로 사려 깊었습니다. 기술이 아닌 실제로 있지만 적법성에 털이 수 있습니다 역 http://www.garmin.com/support/pdf/IOSDK.zip

+1

그게 Garmin 장치의 특정 문제에 대한 해답을 Google이 제공한다는 것은 행운이고 행운입니다. 그러나 QUESTION은 여기서 대답하지 않습니다. 아마도 그 질문은 대답과 일치하도록 다시 말해야합니다. – AlanKley

0

나는 당신이 원산지의 리버스 엔지니어링의 적법성을 확인하는 것으로부터 시작하는 것이 좋습니다. 대부분의 국가는 리버스 엔지니어링 장치 및 코드와 관련하여 허용되는 것과 허용되지 않는 것에 대해 매우 엄격한 법률을 적용합니다.

+0

일반적으로 미국에서는 허용되어있어 많은 라이센스에서 명시 적으로 금지되어 있습니다. 법을 위반할 때 문제가 발생할 것으로 생각되면 변호사 (귀하가 속한 관할지에 대한 법률을 알고있는 사람)에게 상담하십시오. –

-1

컴퓨터 스피커와 같은 것을 사용하여 심장 박동을 합성 할 수 있습니까? (나는 그런 장치가 실제로 어떻게 작동하는지 전혀 모른다). 이진 결과가 다른 입력에 따라 어떻게 변하는 지보십시오.

기기를 분해하고 내부의 내용을 확인하면 도움이 될 것입니다.

+1

당신은 항상 마음의 옆에 심장 박동 모니터를두고 그것을 사용할 수 있습니다 ... 당신의 생각은 훌륭합니다 :) –

1

필자는 16 진수 편집기에서 데이터를 살펴보기 시작합니다. 가장 일반적인 인코딩 (ASCII, 유니 코드 등)을 알고있는 좋은 데이터로 시작해서 알 수있는 데이터를 이해하려고합니다. 저장되었습니다.

1

언급 한 또 다른 포스터 :

그리고 여기 가민 I/O 사양에 대한 직접 링크입니다.

이 프로젝트와 해당 코드를 확인하면 루트 질문과 관련된 모든 것을 찾을 수 있으며 주자의 심박수/GPS 콤보 데이터도 처리 할 수 ​​있습니다.

http://www.gpsbabel.org/

0

나는 어떤 데이터가 장치에 의해 보내지는지보고 나서 그런 데이터가 표현되고 포장되는 방법을 고려할 것입니다.

나는 심장 박동이 일정한 무언가이고 심장 자체와 관련된 측정이라고 제안 할 것이기 때문에 많은 샘플을 먼저 포착하고 어떤 패턴이 나타나는지 살펴볼 것입니다. 나는 또한 일종의 타임 스탬프를 제안하는 것처럼 단조롭게 증가하는 비트 필드를 찾는다.

무엇이 어디 있는지에 대한 가설을 세우고 그것을 테스트하고 결과를 그래프로 작성하여 이해할 수 있는지 확인해 보겠습니다. 만약 그렇다고해도 그렇지 않다면, 면밀한 검사를 통해 여기 저기에 스케일링 요인이 필요하다는 것을 알 수 있습니다. 또한 데이터가 처리되기 전에 데이터를 먼저 처리해야 할 필요가 있습니다. 즉 데이터 요소를 통합해야 할 수도 있습니다.쓰레기가 생기면 도면 보드로 돌아갑니다. :-)

또한 제조 업체의 웹 사이트를 확인하거나 strings을 바이너리로 실행합니다. 생물 의학 공학 분야에서 일하는 사람을 찾는 것도 내 목록에 포함될 것입니다. 아마도 어떤 프로토콜이 일반적으로 사용되는지 알기 때문입니다. 나는 또한 이러한 프로토콜을 찾고 내가보고있는 데이터에 어떤 것이 적용될 수 있는지 확인합니다.

0

데이터의 16 진 덤프를 만드는 것으로 시작합니다. 그림은 아마도 2 x 2 크기의 청크에서 차단되었을 것입니다. 반복되는 패턴을 찾기 시작합니다. 그들이 어떤 자료를 보내고 있는지 생각해보십시오. 그들은 각 심장 박동을 개별적으로 녹음하거나 센서가 고정 간격으로 보내는 모든 것을 녹음합니다. 개별적인 박자라면 마지막 박자 이후의 시간 델타, 지속 시간 및 최대 또는 평균 강도가 될 것입니다. 고정 된 간격이라면, 그것은 아마도 단순한 판독 값의 벡터 일 것입니다. 시작 타임 스탬프 및 샘플링 속도와 함께 어떤 종류의 서문이있을 것입니다. 타임 스탬프를 직접 해독 해 보거나 단순히 ctime()에게 넘겨주고 표준 절대 시간 형식을 사용하는지 확인해보십시오.

많은 저렴한 A/D 변환기는 12 비트 출력 만 생성하므로 판독 값이 16 비트보다 크지 않으며 플래그에 대해 상위 4 비트가 사용될 수 있습니다. 나는 "빈", 내용을 덤핑 및 저장 한 다음 판독 값 집합을 취하여 장치가 정상적으로보고하는대로 결과를 기록한 다음 내용을 다시 덤프하고 기록 된 결과를 상호 연관 시키려고 장치를 재설정하는 것이 좋습니다. "공백"덤프 후에 나타나는 모든 데이터가 포함됩니다.

0

확실하지 않은 내용이 있으면 찾으십시오.하지만 Garmin이 브라우저에서 실행되는 API를 만들었습니다.

http://developer.garmin.com/web-device/garmin-communicator-plugin/

API의 특징

... 대신이 리버스 엔지니어링 사용할 수 있습니다 경우 내가 볼 구글 크롬에서 그것을 시도 할 것 ... OSX가 윈도우 브라우저뿐만 아니라, 지원 보인다

자동 감지 제품 정보 제품 이름 및 소프트웨어 버전과 같은 장치에 컴퓨터 액세스에 연결된 장치의이 트랙, 루트 및 중간 점 지원 레크리에이션, 피트니스에서와 탐색 읽기 장치 지저분한 주소 쓰기 및 레크 리 에이션, 피트니스 및 항법 장치에 대한 트랙, 경로 및 웨이 포인트 작성 에서 피트니스 데이터 읽기 지원되는 피트니스 장치 웨이 포인트 또는 즐겨 찾기로 지오 코드 주소 및 장치에 저장 Garmin XML 파일 (GPX 및 TCX) 읽기 및 쓰기, 을 바이너리 파일로 사용하십시오. 대부분의 Garmin 기기 (USB, USB 대용량 저장 장치, 대부분의 시리얼 장치) 지원 Microsoft Windows의 Firefox 및 Chrome 용 Internet Explorer를 지원합니다. Safari, Firefox 및 Mac OS X의 Chrome에 대한 지원