본문 바로가기
기타_모아/자료실

[BLE Sniffer] nRF BLE Sniffer

by KANG Stroy 2021. 1. 30.
728x90
728x90

BLE를 이용해서 개발을 하면서 통신 값을 중간에 캡쳐 하고 싶은 생각이 들어서 찾아 보았습니다. 

이런것을 할 수 있는것이 

BLE Sniffer 라고 하는군요. BLE를 이용하는 제품들에 대해서 가능한 부분 입니다. 

준비 해야 할 부분은 크게 3가지 입니다. 

1. Dongle 프로그램 입력 및 셋팅

2. Wireshark 설치 및 셋팅 

3. Python 설치 및 셋팅 

중간 중간 프로그램이 설치 되면 재부팅을 해주세요. 무료라는 장점이자 단점을 가지고 있기 때문에 적용을 시키기 위해서 재부팅을 해 주시는게 좋을거 같내요. 이거 설치 했는데 왜? 안되지 라고 생각하기 전에 재부팅을 해 주세요. 사진때문에 글이 길어지면 다음 링크로 넘어 가도록 하겠습니다. 

여러 블로그와 Nordic 홈페이지를 참고 하였습니다. 

 

Dongle 프로그램 입력 및 셋팅

1. nRF52840 Dongle 이 필요 합니다. 

 

이런 제품을 동글 이라고 하는군요. 아래 사진의 Reset Button을 기억 해 주세요.

2. Dongle에 넣을 프로그램을 찾습니다. 

링크는 시간이 지나면 깨질수 있어서 사진을 올려 놓습니다. 

https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Sniffer-for-Bluetooth-LE/Download

00. nrf_sniffer_for_bluetooth_le_3.1.0_7cc811f .zip
다운로드

 

https://www.nordicsemi.com/Products/Development-tools/nrf-sniffer-for-bluetooth-le/download (4.0 ver 이상 입니다.) 

위의 파일 입니다. 링크 따라 가기 싫으신 분들을 위해서 올려 봅니다.

압축을 풀고 HEX 폴더에 들어가면 

아래 3번의 프로그램을 이용해서 xxx Dongle .hex를 다운 받을 겁니다.  

Development kit/dongle Firmware file name
nRF52840 DK (PCA10056) sniffer_nrf52840dk_nrf52840_*.hex
nRF52840 Dongle (PCA10059) sniffer_nrf52840dongle_nrf52840_*.hex
nRF52 DK (PCA10040) sniffer_nrf52dk_nrf52832_*.hex
nRF51 DK (PCA10028) sniffer_nrf51dk_nrf51422_*.hex
nRF51 DK (PCA10031) sniffer_nrf51dongle_nrf51422_*.hex
3. nRF Connect V3.6.1 프로그램을 다운 받습니다. 

 

Dongle에 프로그램 다운 받습니다. 

1번 항목에서 Reset button을 click 합니다. 그러면 아래와 같이 1번의 항목이 나오고 선택이 가능 하도록 합니다. 2번을 클릭해서 2번의 파일을 찾아서 선택 합니다. ( xxx Dongle xxx .hex ) 그리고 Write를 클릭하면 진행이 됩니다. 

최종에서 에러가 발생해도 다운로드가 된 것입니다.  

아마도 에러가 나는 이유는 다운로드 후 리셋이 되면서 DFU 모드로 진입 해야 하는데, HW Dongle이 버튼을 눌러야 DFU 모드가 되기 때문으로 보입니다. 

다시 버튼을 누르고 확인하면 변경 된 것을 확인 할 수 있습니다.

여기까지 하면 Dongle 셋팅이 끝납니다. 

4. Wireshark 다운로드 및 설치  
다운로드 받은 후 넥스트를 눌러서 설치 합니다. 
 

다 설치가 완료 되면 

설치 된 폴더를 찾아 들어 갑니다.

대부분 아무 생각 없이 설치를 하게 되면 다음의 폴더를 찾아 갑니다. 

C:\Program Files\Wireshark\extcap

여기에 1번의 압축 파일에서 

extcap 폴더에 있는 모든것을 위의 폴더로 복사해서 넣습니다. 

복해 넣은 이 폴더를 기억해 주세요.. 이곳에서 아래 파이선의 명령어를 열심히 입력 할 것입니다. 

5. Pythin 설치 및 셋팅 
이 부분에서 한참동안 어떻게 해야 할지 몰랐습니다. 여러 블로그들을 참고 하였습니다. 
1. Python 다운로드 
버전은 최신으로 가져 갑니다. 2021년 1월에는 3.9.1 이 최종이였습니다. 최신것을 받고 싶으시면 구글링 부탁 드립니다. 

가지고 있는 파이선을 올리기 위해서 압축을 3개로 나누었습니다. ( 티스토리 10Mb 제한 ) 

python-3.9.1-amd64.z01
다운로드
python-3.9.1-amd64.z02
다운로드
python-3.9.1-amd64.zip
다운로드

3개를 다 받고 제일 아래 파일을 클릭하시면 됩니다.

프로그램을 설치하고 설치 폴더를 기억해 둡니다. 

설치가 완료 되면 환경 설정을 합니다. 그리고 cmd 창을 열어서 명령어를 입력 할 것입니다. 

시스템 속성을 클릭하고 제일 하단의 [ 환경 변수 ] 를 클릭 합니다. 

사용자 변수 와 시스템 변수 두곳에 모두 넣었습니다. 

변수 부분에서 Path 를 찾고, 편집을 클릭 합니다. 

편집을 클릭하면 아래와 같이 뜨게 됩니다. 기억해 둔 Python 경로를 입력 합니다. 아래와 같이 입력을 합니다. 

2. cmd 창을 열어서 실행 합니다. 

python -m pip install --upgrade pip

pip install wheel

pip3 install pyserial

nrf_sniffer_ble.bat --extcap-interfaces

복사한 폴더로 넘어가서 명령어를 칠 준비를 합니다. 

제일 마지막 명령어를 에러 없이 하기 위한 준비 단계 입니다. 만약 마지막 명령어를 하고 아래와 같이 에러가 발생한다면 다시 처음부터 실행 해 보시기 바랍니다. 파이선 버젼이 낮아도 발생 할 수 있습니다. 버젼은 3.6 이상을 설치하라고 노르딕 홈페이지에 나와 있습니다.

하나 하나 명령어를 실행하면 아래와 같습니다. 

python -m pip install --upgrade pip

완료가 하나씩 나오기 시작 하는군요 

pip install wheel

 

 

다 설치 한 후 ... 샤크를 실행 하세요.. 샤크 실행은 다음에 만들어야 겠내요... 

링크는 ... 이곳에... 

참고 한 부분 입니다. 

nRF_Sniffer_BLE_UG_v3.2.pdf
다운로드

https://m.blog.naver.com/PostView

728x90

댓글