{"id":13774581,"url":"https://github.com/bastilleresearch/gr-nordic","last_synced_at":"2025-05-11T06:33:21.289Z","repository":{"id":46306712,"uuid":"68230323","full_name":"BastilleResearch/gr-nordic","owner":"BastilleResearch","description":"GNU Radio module and Wireshark dissector for the Nordic Semiconductor nRF24L Enhanced Shockburst protocol. ","archived":false,"fork":false,"pushed_at":"2022-09-03T20:18:33.000Z","size":145,"stargazers_count":115,"open_issues_count":13,"forks_count":35,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-28T21:35:18.737Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BastilleResearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-14T18:01:06.000Z","updated_at":"2025-02-03T06:37:11.000Z","dependencies_parsed_at":"2023-01-17T19:47:32.837Z","dependency_job_id":null,"html_url":"https://github.com/BastilleResearch/gr-nordic","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BastilleResearch%2Fgr-nordic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BastilleResearch%2Fgr-nordic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BastilleResearch%2Fgr-nordic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BastilleResearch%2Fgr-nordic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BastilleResearch","download_url":"https://codeload.github.com/BastilleResearch/gr-nordic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253528415,"owners_count":21922623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T17:01:28.233Z","updated_at":"2025-05-11T06:33:20.827Z","avatar_url":"https://github.com/BastilleResearch.png","language":"CMake","funding_links":[],"categories":["\u003ca id=\"6fa0e0d1f898fba299b2566a33602841\"\u003e\u003c/a\u003eWireshark"],"sub_categories":[],"readme":"# gr-nordic\n\nGNU Radio module and Wireshark dissector for the Nordic Semiconductor nRF24L Enhanced Shockburst protocol. \n\n## external c++ classes\n\n### nordic_rx\n\nReceiver class which consumes a GFSK demodulated bitstream and reconstructs Enhanced Shockburst packets. PDUs are printed standard out and sent to Wireshark.\n\n### nordic_tx\n\nTransmitter class which consumes nordictap structs, generates Enhanced Shockburst packets, and produces a byte stream to be fed to a GFSK modulator. \n\n## python examples\n\nAll python examples use the osmosdr_source/osmosdr_sink blocks, and are SDR agnostic. \n\n### nordic_receiver.py\n\nSingle channel receiver. Listening on channel 4 (2404MHz) with a 2Mbps data rate, 5 byte address, and 2 byte CRC is invoked as follows: \n\n```./nordic_receiver.py --channel 4 --data_rate 2e6 --crc_length 2 --address_length 5 --samples_per_symbol 2 --gain 40```\n\n### nordic_auto_ack.py\n\nSingle channel receiver with auto-ACK. Listening (and ACKing) on channel 4 (2404MHz) with a 2Mbps data rate, 5 byte address, and 2 byte CRC is invoked as follows: \n\n```./nordic_auto_ack.py --channel 4 --data_rate 2e6 --crc_length 2 --address_length 5 --samples_per_symbol 2 --gain 40```\n\n### nordic_sniffer_scanner.py\n\nSweeping single channel receiver, which sweeps between channels 2-83 looking for Enhanced Shockburst packets. During receive activity, it camps on a given channel until idle. \n\n```./nordic_sniffer_scanner.py ```\n\n### microsoft_mouse_sniffer.py\n\nMicrosoft mouse/keyboard following receiver. When launched, this script will sweep between the 24 possible Microsoft wireless keyboard/mouse channels. When a device is found, it switches to that device's 4-channel group, sweeping between that set to follow the device. \n\n```./microsoft_mouse_sniffer.py ```\n\n### nordic_channelized_receiver.py\n\nChannelized receiver example, which tunes to 2414MHz, and receives 2Mbps Enhanced Shockburst packets on channels 10, 14, and 18. \n\n```./nordic_channelized_receiver.py ```\n\n### nordic_channelized_transmitter.py\n\nChannelized transmitter example, which tunes to 2414MHz, and transmits 2Mbps Enhanced Shockburst packets on channels 10, 14, and 18. \n\n```./nordic_channelized_transmitter.py ```\n\n## wireshark dissector\n\nThe wireshark dissector will display Enhanced Shockburst packets in Wireshark. The logic is very straightforward, and will be simple to extend to classify various device types. \n\n### wireshark/nordic_dissector.lua\n\n```wireshark -X lua_script:wireshark/nordic_dissector.lua -i lo -k -f udp ```\n\n## nRF24LU1+ research firmware\n\nCorresponding research firmware for the nRF24LU1+ chips (including Logitech Unifying dongles) is available [here](https://github.com/BastilleResearch/nrf-research-firmware/). \n\nDocumentation on the packet formats covered by the MouseJack and KeySniffer vulnerability sets is available [here](https://github.com/BastilleResearch/mousejack/tree/master/doc/pdf). \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbastilleresearch%2Fgr-nordic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbastilleresearch%2Fgr-nordic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbastilleresearch%2Fgr-nordic/lists"}