explaingit

ymsniper/bbf

Analysis updated 2026-05-18

76PythonAudience · developerComplexity · 3/5Setup · moderate

TLDR

BBF is a command line tool that brute-forces an unknown part of a Bluetooth device's hidden address, for authorized security testing only.

Mindmap

mindmap
  root((bbf))
    What it does
      Brute-forces Bluetooth UAP
      Resolves device names
      Optional Ubertooth survey
      Logs results to file
    Tech stack
      Python
      BlueZ
      Linux
    Use cases
      Authorized pentest
      Address resolution
      Device name lookup
    Audience
      Security researchers
      Pentesters

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Locate a Bluetooth device's full address when only part of it is known, for an authorized security assessment.

USE CASE 2

Survey nearby Bluetooth traffic with Ubertooth hardware to find candidate device addresses.

USE CASE 3

Resolve and log the readable name of a Bluetooth device once its address has been confirmed.

What is it built with?

PythonBlueZLinux

How does it compare?

ymsniper/bbfnalltama/raivtencent-hunyuan/hy-mt2
Stars767676
LanguagePythonPythonPython
Setup difficultymoderateeasyhard
Complexity3/52/54/5
Audiencedevelopergeneralresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Linux with BlueZ, a Bluetooth adapter, root privileges, and optionally Ubertooth hardware.

No license information is stated in the explanation, so terms of use are unclear.

In plain English

BBF is a command line security research tool for Bluetooth devices. Every Bluetooth device has an address called a BD_ADDR, made of three parts, and BBF focuses on finding one unknown part of that address, called the UAP, when you already know the other part called the LAP. It does this by trying every one of the 256 possible values and pinging each one, which usually takes a few minutes at most. If you do not already know the LAP portion of the address, BBF can instead use an Ubertooth One hardware device to listen for nearby Bluetooth traffic and suggest candidate addresses to investigate, which you can then feed into the main sweep. Once BBF finds a complete, working address, it also tries to look up the device's readable name over the air, and can save every result it finds, including the address, name, and how it was found, to a log file for later review. The tool is meant for security researchers and penetration testers who are authorized to test specific devices, since resolving a hidden Bluetooth address defeats the privacy protection that comes from a device being set to non-discoverable. The README is explicit that this should only be used on devices you own or have written permission to test, since locating or identifying someone else's device without consent may be illegal. BBF runs on Linux and depends on BlueZ, the standard Linux Bluetooth stack, along with a Bluetooth adapter and root privileges to run its commands. The Ubertooth survey feature is optional and requires separate hardware. Installation is done with pip after cloning the repository from GitHub, and the tool also bundles an optional companion program that can be built separately for more advanced testing scenarios.

Copy-paste prompts

Prompt 1
Explain how BBF brute-forces the UAP portion of a Bluetooth BD_ADDR using l2ping.
Prompt 2
Walk me through installing BBF on Linux, including the BlueZ and Ubertooth dependencies.
Prompt 3
What is the difference between the LAP, UAP, and NAP parts of a Bluetooth address, based on how BBF uses them?
Prompt 4
Show me how to use the --save option in BBF to log resolved Bluetooth device names to a file.

Frequently asked questions

What is bbf?

BBF is a command line tool that brute-forces an unknown part of a Bluetooth device's hidden address, for authorized security testing only.

What language is bbf written in?

Mainly Python. The stack also includes Python, BlueZ, Linux.

What license does bbf use?

No license information is stated in the explanation, so terms of use are unclear.

How hard is bbf to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is bbf for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.