במדריך הזה מוסבר איך מגדירים את Wireshark ומפעילים את Pyspinel כדי לגנו על חבילות מרשת Thread.
כדי להשתמש בפלאגין של חשיפת Wireshark לחילוץ חבילות, יש לעיין בהצלחת חבילות באמצעות סגירה.
הגדרת סביבת הצלפה
לפני שמתחילים, מבצעים את השלבים הבאים:
בניית המפרש
בנה והבהב מכשיר NCP כדי שישמש כמפתח, באמצעות הפלט הבינארי של ot-rcp
.
nRF52840 נורדית
כדי להגדיר את הדוגמה הנורדית nRF52840 לשימוש ככלי לעיגול, שכפול
openthread/ot-nrf528xx
והגדרת סביבת ה-build:
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
הגדרת קצב השידור ל-460800. יש לחפש את השורה #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
ב-src/nrf52840/transport-config.h
ולהחליף אותה ב-#define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800
.
בניית הקובץ הבינארי:
./script/build nrf52840 UART_trans
המרה שלot-rcp
פלט בינארי להקסדצימלי:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
הבזקot-rcp.hex
לקובץ בלוח nRF52840 כפי שמפורט ב-הבזק את ה-nRF52840 הנתונים.
השבתה של התקן אחסון בנפח גדול (MSD) ב-nRF52840 כדי למנוע בעיות של השחתת נתונים או ירידות בזמן השימוש ביציאת ניפוי הבאגים:
expect <<EOF
spawn JLinkExe
expect "J-Link>"
send "msddisable\n"
expect "Probe configured successfully."
exit
EOF
spawn JLinkExe SEGGER J-Link Commander V6.42b (Compiled Feb 5 2019 17:35:31) DLL version V6.42b, compiled Feb 5 2019 17:35:20 Connecting to J-Link via USB...O.K. Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jan 7 2019 14:07:15 Hardware version: V1.00 S/N: 683411111 VTref=3.300V Type "connect" to establish a target connection, '?' for help J-Link>msddisable Probe configured successfully.
נכסי רשת שרשורים
לפני שממשיכים, כדאי לקבל את המאפיינים הבאים של רשת ה-thread. הם ישמשו לתצורת Wireshark ולהפעלת ה-syspinel sisper.
קידומת מקומית מסוג Mesh
כדי לקבל את הקידומת של Mesh Local ממכשיר ברשת Thread היעד:
שימוש ב-OpenThread CLI:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64שימוש ב-
wpanctl
עם NCP:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"באמצעות ממשק ה-GUI באינטרנט של OTBR, בחר סטטוס. הקידומת של Mesh Local מופיעה בתור IPv6:MeshLocalPrefix כמו
wpanctl
.
ערוץ
כדי להשיג את הערוץ ממכשיר ברשת שרשור היעד:
שימוש ב-OpenThread CLI:
channel
15שימוש ב-
wpanctl
עם NCP:wpanctl getprop NCP:Channel
NCP:Channel = 15באמצעות ממשק ה-GUI באינטרנט של OTBR, בחר סטטוס. הערוץ רשום כ-NCP:Channel כמו
wpanctl
.
מפתח רשת
מפתח הרשת של השרשור משמש את Wireshark לפענוח חבילות אחרי הצילום. כדי לקבל את מפתח הרשת ממכשיר ברשת שרשור היעד:
שימוש ב-OpenThread CLI:
networkkey
33334444333344443333444433334444שימוש ב-
wpanctl
עם NCP:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
מפתח רשת השרשור אינו זמין ב-GUI של OTBR באינטרנט.
אפשרויות חיתוך
אפשרויות | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
הפעל את המפרש
ודאו שאתם משתמשים בנתיב המכשיר הספציפי עבור ה-NCP ובערוץ עבור רשת השרשור שאתם מנסים לריח.
אם המדריך הזה פועל, יש לחבר את ה-nRF52840 DK אל המחשב המארח באמצעות יציאת ניפוי הבאגים, כפי שמתואר ב-Flash
ה-nRF52840. כדי להפעיל את ה-Syspinel snifer,
יש להשתמש בדגל -b
כדי לציין את קצב ההעלאה (אם הוא שונה מברירת המחדל)
ולהשמט את הסימון --no-reset
.
אם אתם מגדירים את Wireshark להצגת RSSI, עליכם לכלול גם את הסימון --rssi
כשאתם מפעילים את כלי הצלפה. לדוגמה, כדי לרחף בערוץ 15 באמצעות מכשיר שמותקן ב-/dev/ttyACM0
עם RSSI הכלול בפלט Wireshark:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
כעת ניתן להציג את החבילות והפרוטוקולים הקשורים לתצורה הזו ב-Wireshark:
עיינו בחומר העזר לחיתוך כלבלב כדי לקבל מידע נוסף על הפעלת Synpinel Snifer.
חיבור USB מקורי
כדי להשתמש ביציאת ה-USB מסוג nRF52840 DK נדרש OpenThreadot-rcp
בינאריים לבנייתםUSB_trans
:
./script/build nrf52840 USB_trans
Flash the nRF52840 DK, לחבר את המחשב למחשב המארח
באמצעות יציאת ה-USB, ולאחר מכן משתמשים ב--no-reset
דגל
אך השמטו-b
סימון בעת הפעלת כלי החיתוך:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
מקורות מידע
לכלים נורדיים נוספים, עיין במוליך למחצה נורדי – שרשור, מבוסס על nRF52840 עם Wireshark.