nexmon  by seemoo-lab

Firmware patching framework for Broadcom/Cypress WiFi chips

created 8 years ago
2,617 stars

Top 18.4% on sourcepulse

GitHubView on GitHub
Project Summary

Nexmon is a C-based firmware patching framework that enables low-level access to Broadcom/Cypress WiFi chips, allowing users to enable advanced features like monitor mode, frame injection, and Software-Defined Radio capabilities. It targets researchers, security professionals, and embedded systems developers working with WiFi hardware.

How It Works

Nexmon operates by patching the WiFi chip's firmware directly. This involves compiling custom C code that hooks into existing firmware functions or modifies behavior. The framework provides tools to extract necessary firmware components (ucode, flashpatches), compile the patches, and then inject them back into the device's firmware, often requiring root access or specific flashing procedures. This approach allows for deep customization beyond standard driver capabilities.

Quick Start & Requirements

  • Installation: Clone the repository, set up the build environment (source setup_env.sh), and use make to compile tools and extract firmware components. Specific build steps vary by target device (e.g., Raspberry Pi, Android phones).
  • Prerequisites: Linux environment (Ubuntu recommended), build tools (git, gawk, qpdf, flex, bison, make, autoconf, libtool, texinfo), kernel headers, and potentially i386 libraries for x86_64 systems. Android development requires the Android NDK (version 11c recommended). Root access is often required for firmware flashing and enabling features.
  • Resources: Building tools and firmware can take time depending on the system. Firmware flashing requires careful execution to avoid hardware damage.
  • Documentation: http://nexmon.org/

Highlighted Details

  • Enables monitor mode with Radiotap headers and frame injection.
  • Supports a wide range of Broadcom/Cypress WiFi chipsets across various devices (smartphones, Raspberry Pi).
  • Facilitates Software-Defined Radio applications, including Wi-Fi jamming and Channel State Information (CSI) extraction.
  • Provides utilities like nexutil for interacting with the patched firmware.

Maintenance & Community

The project is primarily associated with the Secure Mobile Networking Lab (SEEMOO) at Technische Universität Darmstadt. It has a strong academic backing with numerous research papers and contributions. Community interaction points are not explicitly listed in the README, but academic citations suggest active development and research use.

Licensing & Compatibility

The README does not explicitly state a license. However, the project is open-source and widely used in research. Compatibility for commercial use or closed-source linking would require explicit clarification from the maintainers.

Limitations & Caveats

The project carries a strong warning: "Our software may damage your hardware and may void your hardware’s warranty!" Flashing firmware incorrectly can brick devices. Support for specific firmware versions and chipsets varies, and some features may be experimental or require specific OS/kernel versions. Building utilities for Android requires an older NDK version.

Health Check
Last commit

1 month ago

Responsiveness

1 day

Pull Requests (30d)
1
Issues (30d)
1
Star History
60 stars in the last 90 days

Explore Similar Projects

Starred by Anton Bukov Anton Bukov(Cofounder of 1inch Network), Chip Huyen Chip Huyen(Author of AI Engineering, Designing Machine Learning Systems), and
9 more.

exo by exo-explore

0.3%
29k
AI cluster for running models on diverse devices
created 1 year ago
updated 4 months ago
Feedback? Help us improve.