The Momentum Encyclopedia
Every app, feature, protocol, and CLI command for Flipper Zero + Momentum firmware. The definitive reference.
The Swiss Army knife of wireless hacking. A pocket-sized multi-tool for pentesters, researchers, and curious hackers — supercharged with Momentum custom firmware.
Flipper Zero packs seven radio interfaces into a device the size of a car key. Here's what's inside:
| Module | Chip | Frequency | What It Does |
|---|---|---|---|
| Sub-GHz | TI CC1101 | 300–928 MHz (stock) / 281–962 MHz (Momentum) | Garage doors, car keyfobs, weather stations, doorbells, wireless sensors |
| NFC | ST25R3916 | 13.56 MHz | MIFARE Classic, Ultralight, NTAG, DESFire, transit cards, access badges |
| 125 kHz RFID | Custom analog | 125 kHz | HID ProxCard, EM4100, Indala — building access, old hotel keys |
| Infrared | TSOP75338 + IR LED | 38 kHz carrier | TVs, ACs, projectors, fans — any IR remote |
| Bluetooth | STM32WB55 (built-in) | 2.4 GHz BLE 5.0 | BLE spam, Bad Keyboard, FindMy, HID devices |
| GPIO | 18 pins (3.3V) | — | UART, SPI, I2C, 1-Wire, analog — connect WiFi boards, sensors, modules |
| USB-C | USB 2.0 FS | — | BadUSB, data transfer, charging, UART bridge |
| iButton | 1-Wire contact | — | Dallas/Cyfral/Metakom keys (intercom access) |
Additional hardware: 1.4" 128×64 LCD (monochrome, orange backlight or RGB with Momentum), microSD slot (up to 256GB), 5-button d-pad + back button, 2000mAh battery (~7 days standby, ~2 hours active radio use), vibration motor.
Momentum is the most actively developed custom firmware for Flipper Zero. Here's what you get over the official firmware:
| Feature | Stock Firmware | Momentum |
|---|---|---|
| Sub-GHz Range | 300–928 MHz | 281–361, 378–481, 749–962 MHz (extended) |
| Rolling Codes | Read only (no replay) | Full capture + replay (KeeLoq, StarLine, Nice, etc.) |
| BLE Spam | Not available | Apple, Samsung, Google, Windows, Sour Apple |
| Bad Keyboard | Not available | Wireless BadUSB via Bluetooth |
| FindMy Flipper | Not available | Track via Apple FindMy network |
| Extra Apps | ~15 built-in | 80+ apps (Metroflip, MFKey, Marauder, etc.) |
| RGB Backlight | Orange only | Full RGB color customization |
| Asset Packs | Limited animations | 100+ community animation packs |
| Passport | Basic | Custom themes, backgrounds, icons |
| Sub-GHz Bruteforcer | Not available | Brute force static codes for gates/barriers |
| Protocol Support | Standard set | Extended with community contributions |
Flash Momentum Firmware
Set Up the Dashboard
This site (flipper.llm.kaveenk.com) provides a remote dashboard for controlling your Flipper Zero. It connects via a bridge running on the same network as your Flipper. Use it to send CLI commands, trigger Sub-GHz transmissions, read NFC cards, and more — all from your browser.
Essential First Steps
- Insert a microSD card — most features require it for storage (saved signals, keys, databases)
- Update databases — go to Momentum App → keep the NFC/RFID/IR databases up to date
- Configure Sub-GHz region — Momentum App → Protocols → enable extended frequencies
- Set up GPIO — if you have a WiFi Dev Board, attach it to the GPIO header now
The CC1101 radio transceiver handles everything from garage doors and car keyfobs to weather stations and wireless doorbells. Momentum unlocks extended frequencies, rolling code replay, and brute-force attacks. This section covers the radio hardware, modulation types, every supported protocol, and real-world attack scenarios.
"Sub-GHz" means any radio frequency below 1 GHz. These frequencies are used worldwide for low-power, long-range communication — think garage doors, car keyfobs, weather stations, and IoT sensors. They travel farther than WiFi or Bluetooth and penetrate walls better.
The Flipper Zero uses a Texas Instruments CC1101 transceiver chip — a dedicated radio IC that handles both transmitting and receiving. Here's what's inside:
What It CAN Do
- Receive and transmit on 300–928 MHz (stock) or 281–962 MHz (Momentum)
- Decode 40+ protocols automatically (Princeton, CAME, KeeLoq, weather stations, etc.)
- Capture raw radio data for unknown protocols
- Multiple modulation modes: ASK/OOK, 2-FSK, 4-FSK, GFSK, MSK
- Act as a frequency analyzer to detect unknown transmissions
What It CAN'T Do
- WiFi or Bluetooth — those are 2.4 GHz, completely different hardware
- Cellular signals — 700+ MHz cellular uses different modulation and power
- Wideband signals — CC1101 is narrowband only (~58 kHz max bandwidth)
- Simultaneous TX/RX — it's half-duplex, one direction at a time
- Jam effectively at range — 10 mW is very low power compared to actual jammers
Range
| Setup | Indoor Range | Outdoor Range |
|---|---|---|
| Internal antenna | ~20–50 m | ~50–100 m |
| External CC1101 module | ~50–100 m | ~200–500 m |
| External + directional antenna | N/A | ~500 m–1+ km |
Modulation is how data is encoded into radio waves. Different devices use different modulation, and the Flipper must match the modulation to decode a signal. Think of it like languages — the Flipper speaks several.
subghz decode_raw to try decoding with different parameters offline.A static code system sends the exact same signal every single time you press the button. Like a password that never changes. Capture it once, and you can replay it forever.
Where You'll Find Static Codes
- Old garage doors — DIP switch models (set code with physical switches inside the remote)
- Wireless doorbells — almost all consumer doorbells
- Cheap RF power outlets — 433 MHz remote-controlled plugs
- Fan remotes — ceiling fan RF controllers
- Gate remotes (older) — CAME, Nice FLO, Linear, GateTX
- Restaurant buzzers — most pager-style buzzers
Common Static Code Protocols
A rolling code (also called "hopping code") generates a different signal every press. Both the remote and receiver share a secret key and a synchronized counter. Each press increments the counter and produces a new cryptographic code. Capturing a code is useless — it's already been "consumed."
How the Counter Sync Works
- Remote and receiver both start at counter value N
- Each press increments the remote's counter and generates a code:
encrypt(counter, secret_key) - The receiver only accepts codes with a counter ahead of its last-seen value
- There's a window (typically 256 codes ahead) — so pressing the button when out of range doesn't permanently desync
- If someone replays a code with a counter behind the receiver's current position → rejected
Stock vs Momentum Firmware
| Capability | Stock Firmware | Momentum Firmware |
|---|---|---|
| Capture rolling codes | ✅ Yes | ✅ Yes |
| Decode rolling code protocol | ✅ Yes | ✅ Yes |
| Replay rolling codes | ❌ Blocked | ✅ Allowed |
| Pair as new remote | ❌ No | ✅ Yes (Add Manually) |
| Brute force static codes | ❌ No app | ✅ Bruteforcer app |
Common Rolling Code Protocols
The RollJam attack (demonstrated by Samy Kamkar in 2015) exploits a fundamental weakness in rolling code systems. It doesn't break the crypto — it games the protocol.
How It Works
Why This Works
- Rolling code receivers accept codes within a window ahead of the last accepted counter
- If CODE_001 was accepted and CODE_002 is next in sequence, it's valid
- The jamming prevents the receiver from ever seeing the code, so the counter doesn't advance past it
Requirements
- A jammer on the exact frequency — the Flipper alone can't effectively jam and capture simultaneously (you'd need a second device or external CC1101 module)
- Proximity — close enough to both jam the receiver and capture the remote's signal
- Timing — must jam before the receiver processes the signal
Defenses
- Time-based rolling codes — codes expire after a short window (not commonly implemented)
- Dual-code verification — receiver requires two consecutive valid codes (some newer systems)
- Lock-down on jammed signals — receiver detects jamming patterns (rare in consumer gear)
The primary capture mode. Listens on a specific frequency and decodes known protocols in real-time.
How it works
- Navigate to Sub-GHz → Read
- Set frequency (common: 315 MHz, 433.92 MHz, 868 MHz, 915 MHz)
- Press a button on the target remote — Flipper decodes the signal
- Save the capture for later replay
What you can capture
- Garage door openers — static code remotes (older DIP switch models)
- Car keyfobs — signal is visible, but rolling codes won't replay on stock firmware
- Weather stations — temperature/humidity data from Oregon Scientific, Acurite, LaCrosse, etc.
- Doorbells — wireless doorbell chimes
- Wireless sensors — motion detectors, door/window sensors, smoke alarms
- Gate remotes — barrier gates, parking lot remotes
Captures raw radio data without trying to decode it. Essential for unknown or unsupported protocols.
When to use
- The signal isn't recognized by the standard Read mode
- You need to capture the exact waveform for analysis
- Custom or proprietary protocols
- Complex signals with multiple components
Usage
- Sub-GHz → Read RAW
- Set frequency, press record (●), trigger the remote, stop recording
- File saved as
.subwith raw timing data - Can be replayed from Saved menu
- Can be analyzed with
subghz decode_rawCLI command
Browse your saved .sub files and replay them. This is how you transmit captured signals.
- Sub-GHz → Saved → browse SD card folders
- Select a file → press Send (→) to transmit
- Works for static codes immediately
- Rolling codes: stock firmware blocks replay; Momentum allows it
File Organization
Saved files go to /ext/subghz/ on the SD card. Organize by folder:
Real-time spectrum analyzer that shows which frequency a device is transmitting on.
- Sub-GHz → Frequency Analyzer
- Press the remote/button you want to analyze
- Flipper shows the detected frequency with signal strength
- Use this frequency in Read or Read RAW mode
Common frequencies to know:
| Frequency | Region | Common Uses |
|---|---|---|
315.00 MHz | North America | Garage doors, car keyfobs (older US vehicles) |
390.00 MHz | North America | Some car keyfobs (GM, older models) |
433.92 MHz | Worldwide | Most common — weather stations, doorbells, remotes, sensors |
868.35 MHz | Europe | Gate remotes, alarm systems, IoT devices |
915.00 MHz | North America | ISM band, LoRa, some IoT |
Create Sub-GHz signals from known protocol parameters without capturing them.
- Sub-GHz → Add Manually
- Select protocol (Princeton, CAME, Nice FLO, etc.)
- Enter key/data value, bit length
- Set frequency and save
Useful when you know the exact code (e.g., from documentation, DIP switch positions on a garage remote, or shared by another tool).
Momentum unlocks the full capability of the CC1101 radio chip beyond what stock firmware allows.
| Band | Stock Range | Momentum Range |
|---|---|---|
| Low | 300–348 MHz | 281–361 MHz |
| Mid | 387–464 MHz | 378–481 MHz |
| High | 779–928 MHz | 749–962 MHz |
Enable via: Momentum App → Protocols → Sub-GHz → Extend
Stock firmware intentionally blocks replaying rolling (hopping) codes. Momentum removes this restriction, enabling capture and replay of rolling code signals.
How Rolling Codes Work
Each button press generates a unique code from a synchronized counter. The receiver only accepts the next expected code in sequence. Capturing and replaying an old code normally doesn't work because the receiver has already moved past it.
Why Replay Can Still Work
- Jam + Capture — Block the original signal while recording it. The receiver never sees the code, so it remains valid. Requires a secondary jammer.
- RollJam attack — Jam the first press, capture it. Victim presses again, jam + capture the second code. Replay the first code (victim's car opens), save the second for later.
- Code window vulnerability — Many receivers accept codes within a window of ~256 ahead of current counter. If you capture a code the victim hasn't used yet, it may still be valid.
Supported Rolling Code Protocols
Systematically tries all possible codes for a given protocol. Works only against static code systems (no rolling codes).
Supported Protocols
- Chamberlain 9-bit — 512 codes, ~2 minutes
- Chamberlain 8-bit — 256 codes, ~1 minute
- Linear 10-bit — 1024 codes, ~4 minutes
- Nice 12-bit — 4096 codes, ~17 minutes
- CAME 12-bit — 4096 codes, ~17 minutes
- Princeton 24-bit (custom) — specify prefix, brute remainder
Usage
- Navigate to Sub-GHz → Bruteforcer (Momentum menu)
- Select protocol and frequency
- Start the brute force — Flipper cycles through all codes
- When the gate/device responds, note the working code
Schedule Sub-GHz transmissions for a specific time. Set up a signal to transmit later — useful for timed automation tests.
- Select a saved
.subfile - Set the time and frequency
- Flipper transmits automatically at the scheduled time
Share captured Sub-GHz signals between two Flipper Zero devices wirelessly using the Sub-GHz radio itself. One Flipper transmits the capture data, another receives it.
Use the Flipper as an HC-11 compatible UART modem over Sub-GHz radio. Enables serial communication between devices at 433 MHz.
- Emulates HC-11 wireless serial module
- Send/receive UART data wirelessly
- Useful for IoT prototyping and embedded systems testing
Visual spectrum analyzer showing real-time RSSI (signal strength) across a frequency range. Sweep across bands to find active transmitters.
- Sweep configurable frequency range
- Visual waterfall/graph display
- Identify active frequencies before targeted capture
- Useful for RF environment mapping
Send text messages between two Flipper Zero devices using Sub-GHz radio — no WiFi, cellular, or internet required.
- Both Flippers set to same frequency (e.g., 433.92 MHz)
- Type messages using Flipper's on-screen keyboard or via CLI
- Range depends on environment: ~50m indoors, ~200m outdoors with clear line of sight
- CLI:
subghz chat <freq>
Instead of replaying captured signals, you can register the Flipper as a brand new remote with your garage door opener. The opener "learns" the Flipper's signal, making it a legitimate paired device — no replay, no hacking. This works because the Flipper can generate valid protocol signals that the opener's "learn" mode accepts.
Before You Start
- Find your garage door opener model number (printed on the motor unit on your ceiling)
- Determine the protocol: most modern US openers use Security+ or Security+ 2.0 (Chamberlain, LiftMaster, Craftsman)
- Determine the frequency: check the FCC label on your existing remote or the opener unit
- LiftMaster/Chamberlain (purple learn button) → 310 MHz
- LiftMaster/Chamberlain (yellow learn button) → 315 MHz
- LiftMaster/Chamberlain (red/orange learn button) → 390 MHz
- Chamberlain myQ (newer) → Security+ 2.0 @ 310 or 315 MHz
Pairing Steps
- If it doesn't work on the first try, delete the signal, create a new one with a different key/serial value, and try again. Some openers are picky about format.
- Each "learned" signal is a unique remote. You can pair multiple signals for different buttons (open, close, light).
- This does NOT work with openers that require proprietary multi-channel handshakes (some newer myQ models).
- For European gates using CAME, Nice, BFT — the same process works with their respective protocols.
Most consumer weather stations transmit sensor data at 433 MHz using unencrypted protocols. The Flipper (especially with Momentum) decodes these automatically, letting you see temperature, humidity, and other readings from nearby stations — including your neighbors'.
How to Monitor
- Navigate to Sub-GHz → Read
- Set frequency to 433.92 MHz
- Nearby weather stations will show up as decoded readings with temperature and humidity data
- Each station has a unique sensor ID — you can track multiple stations simultaneously
Supported Weather Protocols
| Protocol | Data Decoded | Common Brands |
|---|---|---|
| Oregon Scientific V2.1/V3 | Temp, humidity, channel | Oregon Scientific |
| Acurite 592TXR | Temp, humidity, sensor ID | AcuRite |
| Acurite 606TX / 609TXC | Temp, humidity | AcuRite |
| LaCrosse TX | Temp, humidity | La Crosse Technology |
| Ambient Weather | Temp, humidity | Ambient Weather |
| ThermoPRO TX-2 | Temp, humidity | ThermoPro |
| Nexus-TH | Temp, humidity | Nexus, various clones |
| Infactory | Temp, humidity | Infactory |
Every car manufactured since 2007 (US) or 2014 (EU) has Tire Pressure Monitoring System sensors in each wheel. These broadcast wirelessly at 315 MHz (North America) or 433 MHz (Europe/Asia) every 60–90 seconds, or immediately when pressure changes.
What the Flipper Decodes
- Tire pressure — current PSI/kPa
- Temperature — tire temperature in °C/°F
- Sensor ID — unique 28/32-bit identifier for each sensor
- Battery status — some protocols include low-battery flag
Supported TPMS Protocols
Security Concern
TPMS sensor IDs are unique and static — they never change unless the sensor is replaced. This means:
- Each car has a unique "fingerprint" of 4 TPMS IDs
- Anyone with a receiver can track a specific car's presence by monitoring for its TPMS IDs
- This has been demonstrated by researchers as a vehicle tracking vector
- No encryption, no authentication — just a broadcast beacon on every wheel
Every Sub-GHz protocol supported by Flipper Zero + Momentum firmware, with type, frequency, bit depth, security rating, and common devices.
| Protocol | Type | Frequency | Bits | Security | Common Devices |
|---|---|---|---|---|---|
| Princeton | Static | 433 MHz | 24 | 🔴 None | Generic remotes, doorbells, power outlets, fan remotes |
| CAME | Static | 433 MHz | 12/24 | 🔴 None | European gates, parking barriers |
| CAME Atomo | Rolling | 433 MHz | — | 🟡 Weak | Newer CAME gate systems |
| CAME Twee | Static | 433 MHz | 54 | 🔴 None | CAME variant, Italian gates |
| Nice FLO | Static | 433 MHz | 12 | 🔴 None | European gates, barriers (Nice S.p.A.) |
| Nice FloR-S | Rolling | 433 MHz | 52 | 🟡 Weak | Newer Nice gate systems |
| Gate TX | Static | 433 MHz | 24 | 🔴 None | Generic gate remotes |
| Linear | Static | 300/310 MHz | 10 | 🔴 None | Old US garage doors (DIP switches, 1024 codes total) |
| Doorhan (static) | Static | 433 MHz | 24 | 🔴 None | Russian gate systems (older) |
| Doorhan (rolling) | Rolling | 433 MHz | — | 🟡 Weak | Russian gate systems (newer) |
| Security+ 1.0 | Rolling | 310/315/390 MHz | 40 | 🟡 Weak | Chamberlain/LiftMaster (older US garage doors) |
| Security+ 2.0 | Rolling | 310/315/390 MHz | 62 | 🟢 Strong | Chamberlain/LiftMaster/Craftsman (modern US garage doors, myQ) |
| Marantec | Static | 433 MHz | — | 🔴 None | European garage doors (Marantec GmbH) |
| BFT (static) | Static | 433 MHz | 12 | 🔴 None | European gates (BFT S.p.A., older) |
| BFT Mitto | Rolling | 433 MHz | — | 🟡 Weak | European gates (BFT, newer models) |
| Somfy Telis/RTS | Rolling | 433 MHz | 56 | 🟡 Weak | French blinds, shutters, awnings (Somfy Group) |
| StarLine | Rolling | 433 MHz | 64 | 🟡 Weak | Russian car alarm systems |
| KeeLoq | Rolling | Various | 66 | 🟡 Weak | Used by MANY manufacturers — gates, cars, alarms. Microchip Technology algorithm. |
| Alutech AT-4N | Rolling | 433 MHz | — | 🟡 Weak | Russian/CIS gates and barriers |
| Centurion | Rolling | 433 MHz | — | 🟡 Weak | South African gate systems |
| Magellan | Rolling | 433 MHz | — | 🟡 Weak | Security alarm remotes |
| Holtek HT12x | Static | Various | 12 | 🔴 None | Generic encoder IC — used in countless DIY and consumer remotes |
| Honeywell | Static | 345 MHz | — | 🔴 None | US home security sensors (door, window, motion) |
| Ansonic | Static | 433 MHz | 12 | 🔴 None | European gate remotes |
| SMC5326 | Static | 330/433 MHz | 25 | 🔴 None | Malaysian/Asian gate remotes, parking barriers |
| UNILARM | Static | 433 MHz | 25 | 🔴 None | Generic alarm remotes |
| Intertechno V3 | Static | 433 MHz | 32 | 🔴 None | Smart home power outlets (European) |
| Doitrand | Static | 433 MHz | 37 | 🔴 None | French gate remotes |
| Phoenix V2 | Static | 433 MHz | — | 🔴 None | European gate remotes |
| Viking | Static | 433 MHz | — | 🔴 None | Viking gate and access systems |
| Nero Sketch/Radio | Static | 433 MHz | — | 🔴 None | Nero branded controllers |
| Power Smart | Static | 433 MHz | 24 | 🔴 None | Smart power outlets |
| Oregon Scientific V2.1/V3 | Sensor | 433 MHz | — | 🔴 None | Oregon Scientific weather stations |
| Acurite 592TXR / 606TX / 609TXC | Sensor | 433 MHz | — | 🔴 None | AcuRite weather stations and sensors |
| LaCrosse TX | Sensor | 433 MHz | — | 🔴 None | La Crosse Technology weather stations |
| Ambient Weather | Sensor | 433 MHz | — | 🔴 None | Ambient Weather stations |
| ThermoPRO TX-2 | Sensor | 433 MHz | — | 🔴 None | ThermoPro sensors |
| Nexus-TH | Sensor | 433 MHz | 36 | 🔴 None | Nexus weather sensors, various rebrands |
| TPMS (Schrader) | Sensor | 315/433 MHz | — | 🔴 None | Tire pressure sensors (cars, trucks) |
| TPMS (Toyota/Ford/Citroën) | Sensor | 315/433 MHz | — | 🔴 None | OEM tire pressure sensors |
| POCSAG | Pager | Various | — | 🔴 None | Pager messages (hospital pagers, restaurant buzzers) |
🟡 Weak: Rolling code, but algorithm has known weaknesses (KeeLoq is cryptanalyzed, others have insufficient entropy). Replay possible with Momentum firmware; pairing bypass possible.
🟢 Strong: Modern rolling code with adequate key length and no publicly known full breaks. Pairing as new remote is the practical approach.
| Command | Description | Example |
|---|---|---|
subghz tx | Transmit a signal with specified parameters | subghz tx DEADBEEF 433920000 420 3 0 |
subghz rx | Receive/listen on a frequency | subghz rx 433920000 0 |
subghz tx_from_file | Transmit a saved .sub file | subghz tx_from_file /ext/subghz/garage.sub 3 0 |
subghz decode_raw | Decode a RAW capture file offline | subghz decode_raw /ext/subghz/raw_capture.sub |
subghz chat | Enter chat mode with another Flipper | subghz chat 433920000 0 |
Parameter Reference
| Parameter | Description | Values |
|---|---|---|
<hex> | Data payload in hex | e.g., DEADBEEF |
<freq> | Frequency in Hz | e.g., 433920000 = 433.92 MHz |
<te> | Timing element in µs | e.g., 420 for Princeton |
<repeat> | Number of transmissions | 1–10 typical |
<device> | Radio device index | 0 = internal CC1101 |
Read, emulate, write, and crack NFC cards. From building access badges to transit cards and Amiibo figures. Momentum adds a massive app ecosystem for advanced NFC operations.
Place any NFC card/tag on the back of the Flipper to read it. Auto-detects card type and reads accessible data.
Supported Card Types
| Type | Common Uses | Read Capability |
|---|---|---|
| MIFARE Classic 1K/4K | Building access, hotel keys, transit | UID + public sectors; needs keys for encrypted sectors |
| MIFARE Ultralight | Transit tickets, event passes | Full read (usually no auth required) |
| NTAG 213/215/216 | NFC tags, Amiibo, smart posters | Full read (NTAG215 = Amiibo) |
| MIFARE DESFire EV1/EV2/EV3 | Transit, modern access control | UID + application list; encrypted data requires keys |
| EMV (Credit Cards) | Contactless payment | UID + some public data; cannot clone or transact |
| FeliCa | Japanese transit (Suica, PASMO) | UID + limited data |
| ISO 15693 (NFC-V) | Library books, inventory | UID + blocks |
This is the most powerful NFC feature. Emulates a card and captures authentication nonces when a real reader tries to authenticate. These nonces are used by MFKey to crack MIFARE Classic sector keys.
How It Works
Emulate a saved NFC card. Hold Flipper to a reader and it responds as if it's the original card.
- Works best with MIFARE Classic — full emulation including encrypted sectors
- MIFARE Ultralight / NTAG — full emulation
- UID-only emulation — works for readers that only check UID (some basic access systems)
- DESFire — UID emulation only (encrypted data not emulated)
Here's the first mind-blowing fact about your NFC access card: it has no battery. Zero. None. That thin piece of plastic has a tiny silicon chip and a coil of copper wire inside — and that's it. So how does it work?
🔋 Power From Thin Air (Literally)
When you hold your card near a reader, here's the physics happening in real-time:
- The reader generates a radio field — It pumps out a 13.56 MHz electromagnetic wave from its antenna coil. This is happening constantly, even when no card is nearby. Think of it like a microwave oven, but way less power and at a specific frequency.
- Your card enters the field — The card's copper coil antenna intercepts this radio wave. Through electromagnetic induction (same principle as wireless phone chargers), the oscillating magnetic field induces a voltage in the card's coil.
- The chip wakes up — That induced voltage powers the card's tiny chip. It goes from dead silicon to a functioning computer in microseconds. The chip has just enough power (~2-5mA) to run its simple processor and memory.
- They start talking — Communication is half-duplex (walkie-talkie style — one talks, the other listens). The reader sends commands by modulating the electromagnetic field. The card responds by load modulation — it switches a resistor on and off, which changes how much energy it draws from the field, and the reader can detect these tiny fluctuations.
The card's coil antenna is tuned to resonate at 13.56 MHz. This frequency was chosen because it's in the ISM (Industrial, Scientific, Medical) band — no license needed. The coil typically has 3-5 turns and is etched into the card's PVC layers.
Power transfer follows the inverse-cube law: P ∝ 1/d³. At 1cm you get decent power. At 5cm, you've lost ~99% of it. At 10cm, it's essentially zero for a passive card. That's why you have to basically touch the reader.
The data rate is 106 kbit/s (for MIFARE Classic) using modified Miller encoding for reader→card and Manchester encoding for card→reader. At this speed, a full authentication + block read takes about 5ms.
When a reader wants to access data on a MIFARE Classic card, they can't just ask. They have to prove they know the secret key. And the card has to prove the same thing back. This is called mutual authentication — a carefully choreographed dance where both sides verify each other without ever saying the password out loud.
Think of it like two spies meeting in a park. Neither one says the code word directly. Instead, they exchange riddles that can only be solved if you know the code word. If the answers match — they trust each other.
🎭 The 3-Pass Authentication Protocol
📡 Reader: "I want to read Sector 5 using Key A"
The reader sends an AUTH command specifying which sector it wants to access and which key (A or B) it's going to use. This is sent in plaintext — nothing secret here. It's just saying "I'm about to prove I belong."
🔑 Like walking up to a locked door and saying "I want to come in through the front entrance."💳 Card: "Okay, prove it. Solve this." (sends nonce nT)
The card generates a 32-bit random number called a nonce (Number used ONCE). This is the tag nonce (nT). The card sends it to the reader as a challenge. The idea: only someone who knows the secret key can correctly respond to this random challenge.
🎲 Like rolling a pair of dice and saying "If you really know the password, tell me what these dice plus the password equal."📡 Reader: "Here's my proof — and a challenge back at you"
The reader takes the card's nonce (nT), feeds it through the Crypto-1 cipher along with the shared secret key, and computes the correct response. But it also generates its own random nonce (nR) and sends that too — challenging the card back. The entire message is encrypted: {nR, f(nT)}.
💳 Card: Verifies... then responds
The card checks if the reader's answer to its challenge is correct. If it is — the reader genuinely knows the key. The card then solves the reader's challenge and sends back {f(nR)}. If the answer was wrong? The card goes completely silent. No error message, no retry — just radio silence.
🔒 Encrypted Channel Open
Both sides now have synchronized Crypto-1 cipher streams. Every subsequent command and response is encrypted. The reader can now read blocks, write data, or perform value operations — all protected by the session key derived from this exchange.
🔗 Like establishing a private language that only lasts for this conversation. Next time, new dice, new riddles, new language.📊 The Full Exchange — Visual
The authentication is mutual — both the reader AND the card prove they know the key. This was designed to prevent a rogue reader from extracting data from your card. If a fake reader can't prove it knows the key, the card stays silent.
In practice, this protection is weakened by the Crypto-1 vulnerabilities. A rogue reader can perform the authentication dance, collect the nonces, and then crack the key offline. But the principle of mutual auth is sound — modern cards like DESFire EV3 use the same concept with much stronger ciphers (AES-128).
Crypto-1 is the encryption algorithm that protects every MIFARE Classic card on the planet. It was designed by NXP Semiconductors in the late 1990s, and it was kept proprietary — they never published how it worked, hoping that secrecy would equal security. They were wrong.
🔐 The Basics
- Type: Stream cipher (generates a stream of pseudo-random bits, XORs them with the data)
- Key length: 48 bits (6 bytes). The default key
FFFFFFFFFFFFis literally all 1s. - Core mechanism: A 48-bit Linear Feedback Shift Register (LFSR)
- Design era: Late 1990s, when 48-bit was considered "good enough" for a contactless card
⚙️ How the LFSR Works
Imagine a row of 48 boxes, each containing either a 0 or a 1. That's the LFSR — the heart of Crypto-1. The secret key is the initial state of these 48 boxes.
Each clock cycle, the bits shift one position. Some positions are "tapped" — their values are XORed together and fed back into the beginning of the register. This generates a pseudo-random bitstream used to encrypt the communication. The output also passes through a nonlinear filter function to make it harder to reverse.
💣 Why It's Broken — The Fatal Flaws
- 48-bit key space is tiny. 2⁴⁸ = ~281 trillion possible keys. Sounds like a lot? A modern GPU can try billions of keys per second. Pure brute force would take hours, not centuries. But the actual attacks are much faster than brute force.
- Security through obscurity failed. NXP kept Crypto-1 secret for a decade. In 2008, researchers at Radboud University Nijmegen physically reverse-engineered the chip — literally grinding down the silicon layer by layer under a microscope and reconstructing the circuit. They published the full algorithm.
- The LFSR has algebraic weaknesses. Because the cipher is linear at its core, knowing some output bits lets you set up a system of equations and solve for the key. The nonlinear filter helps, but not enough against modern algebraic attacks.
- The PRNG is predictable. The card's "random" nonce generator is based on a simple counter seeded at power-up. Since the card powers up at the same state each time, the nonces are predictable — this enables the nested attack.
"Dismantling MIFARE Classic" — Garcia, de Koning Gans, et al. (2008). This paper detailed the reverse-engineering of Crypto-1 and presented practical attacks that could recover keys in seconds. NXP tried to get a court injunction to prevent publication. They lost. The judge ruled that academic freedom and public security outweighed corporate secrecy.
"A Practical Attack on the MIFARE Classic" — de Koning Gans, Hoepman, Garcia (2008). Presented the nested authentication attack — if you know one key, you can derive all others on the card in under a minute.
These papers didn't just break one product — they demonstrated why security through obscurity is a failed strategy. If your security depends on nobody understanding how it works, it's only a matter of time.
Now you understand the authentication protocol and why Crypto-1 is weak. Here's how the Flipper Zero (and other tools) actually exploit those weaknesses to recover the secret keys.
🎯 How They Chain Together
In practice, you almost always use multiple attacks in sequence:
Try known keys
Emulate & capture
Derive from known
Statistical brute
All keys recovered
Most cards fall at step 1 or 2. You'd only need hardnested for particularly stubborn systems — and even then, it's a matter of when, not if.
The MFKey32 attack exploits the fact that the Crypto-1 LFSR is linear. When you capture two authentication sessions with the same key, you get two pairs of (nonce, encrypted_response). Each pair constrains the possible LFSR states.
Mathematically: the 48-bit key determines the initial LFSR state. Each nonce + response pair eliminates ~16 bits of entropy. Two pairs leave ~16 bits of uncertainty — meaning only ~65,536 possible keys to try. At millions of tries per second, that's cracked in milliseconds.
The name "MFKey32" refers to the 32-bit nonces used in the attack. Some implementations use MFKey64 (capturing full 64-bit encrypted exchanges) for even more reliable recovery.
A MIFARE Classic 1K card has exactly 1,024 bytes of memory. That's it — less than a single text file. But those 1,024 bytes are organized in a very specific way, and understanding the layout is key to knowing what you're reading and cloning.
📦 The Memory Map
🏷️ Legend
🔍 Key Details
- Block 0 is sacred. It contains the card's UID, BCC (Block Check Character — a checksum), SAK (Select Acknowledge), and manufacturer data. On a normal MIFARE Classic card, this block is permanently read-only, burned at the factory. This is why "magic" cards exist — they let you rewrite Block 0.
- Sector trailers are the vault doors. The last block of every sector (blocks 3, 7, 11... 63) stores Key A, Access Bits, and Key B. Key A is NEVER readable — even with the correct key, reading it returns all zeros. Key B may be readable depending on the access bits configuration.
- Access bits are the permissions matrix. They control what each key can do for each block in the sector: read, write, increment, decrement, or restore. Three bytes encode all the permissions, plus one byte of padding. Mess these up and you can permanently lock yourself out of a sector.
The 3 access bytes encode permissions for all 4 blocks of a sector using a clever (but confusing) bit scheme. Each block has 3 control bits (C1, C2, C3). These 12 bits (4 blocks × 3 bits) are stored twice — once normally and once inverted — for error detection.
Common configurations:
FF 07 80— Transport configuration. Key A reads/writes everything. Key B is readable (useless as a secret key).78 77 88— Key A reads data, Key B writes data. Neither key can change the sector trailer without both. More secure.08 77 8F— Maximum lockdown. Key A can read. Key B can write. Sector trailer locked. Used in payment systems.
If you're ever editing access bits manually, use an online MIFARE Classic Access Bits Calculator — calculating them by hand is error-prone and the consequence of a mistake is permanent sector lockout.
Here's the problem: to make a perfect clone, you need to copy everything — including the UID in Block 0. But on a real MIFARE Classic card, Block 0 is burned in at the factory and can never be changed. So how do you clone the UID?
Enter "magic" cards — specially manufactured MIFARE Classic compatible cards where Block 0 is writable. They're made by Chinese manufacturers specifically for cloning, testing, and security research.
📊 The Magic Card Lineup
- Backdoor command unlocks Block 0
- All sectors writable
- Cheapest option ($1-3 each)
- ⚠️ Detectable — responds to the magic backdoor command
- Works with 90% of readers
- Block 0 writable via normal write commands
- No special backdoor needed
- Harder to detect than Gen1a
- Slightly more expensive ($2-5 each)
- ⚠️ Some readers detect the writable Block 0
- 4-byte or 7-byte UID (switchable!)
- Shadow mode — hides writable nature
- Configurable backdoor (can be disabled)
- Most expensive ($5-10 each)
- Virtually undetectable in shadow mode
Reader detects Gen1a? → Gen2 (no backdoor to detect)
7-byte UID or paranoid reader? → Gen4 (handles everything)
You've cloned the card perfectly to your Flipper. All sectors read. All keys recovered. You tap it on the reader and... nothing. Why?
⚡ It's a Speed Problem
The Flipper Zero's NFC emulation is done in software — its ARM Cortex-M4 processor is interpreting commands and generating responses. A real MIFARE Classic chip does this in dedicated hardware (hardwired silicon circuits). The difference:
Most readers have lenient timing and the Flipper is fast enough. But some readers — especially newer ones or high-security installations — have very tight timing windows. If the Flipper's software emulation takes even a fraction too long, the reader times out and rejects the card.
🃏 Why Physical Magic Cards Always Work
A physical magic card contains actual MIFARE Classic silicon — the same dedicated hardware as the original card. It processes Crypto-1 authentication at hardware speed, meets every timing requirement, and is electrically indistinguishable from a genuine card. That's why the recommended workflow is:
🤔 Other Reasons Emulation Can Fail
- UID length mismatch: Some readers expect a 7-byte UID but the Flipper might be emulating 4 bytes (or vice versa).
- Anti-collision issues: The Flipper's NFC stack handles the ISO 14443 anti-collision protocol slightly differently than real silicon. Some readers are picky about the exact byte timing during this phase.
- Multi-sector authentication: If the reader authenticates to multiple sectors in rapid succession, the Flipper's CPU may not keep up with the Crypto-1 state for each session.
- Physical coupling: The Flipper's antenna is smaller and differently positioned than a standard card. Holding it at the wrong angle or distance can cause weak coupling and communication errors.
This is the most requested Flipper Zero guide, and for good reason — MIFARE Classic cards are everywhere. They're used in apartment buildings, office buildings, hotels, gyms, universities, transit systems, parking garages, and more. If you have a white card or plastic fob that you tap to get into a building, there's a very good chance it's MIFARE Classic. Here's how to make a perfect, working clone.
🧠 Background: How MIFARE Classic Works
Before you start, understanding a few concepts will save you a LOT of frustration:
- Sectors & Blocks: A MIFARE Classic 1K card has 16 sectors, each containing 4 blocks of 16 bytes. A 4K card has 40 sectors. The data you care about (your access credentials) lives in these sectors.
- Keys: Each sector is locked by two keys — Key A and Key B. That's 32 keys total for a 1K card (16 sectors × 2 keys). You need these keys to read the data inside each sector.
- Crypto-1 Encryption: MIFARE Classic uses an encryption scheme called Crypto-1. It was cracked back in 2008 and is fundamentally broken, which is why we can recover the keys. Every MIFARE Classic card in the world is vulnerable to this — it's not a Flipper hack, it's a protocol weakness.
- UID (Unique Identifier): Every card has a 4-byte or 7-byte UID burned into Block 0, Sector 0. Many access systems check the UID as part of authentication. To make a real clone, you need to copy this UID too — which requires a special "magic" card.
🛒 What You Need
| Item | Required? | Cost | Notes |
|---|---|---|---|
| Flipper Zero + Momentum | Yes | — | The Momentum firmware includes MFKey, Mifare Nested, and NFC Magic apps pre-installed |
| Original MIFARE Classic card/fob | Yes | — | The card you want to clone |
| Physical access to a reader | Usually | — | The door lock or turnstile reader — needed for the mfkey32 attack (Step 2). Not needed if the card uses all default keys. |
| Magic NFC card (Gen1a/Gen2/Gen4) | Optional | $2–10 | Only needed if you want a physical card clone instead of using Flipper emulation. See card types below. |
🃏 Magic Card Types Explained
If you want a physical card (not just Flipper emulation), you need a "magic" card — a special MIFARE Classic card that allows writing to Block 0 (where the UID lives). Regular MIFARE Classic cards have Block 0 locked at the factory.
| Type | UID Length | Price | Pros | Cons |
|---|---|---|---|---|
| Gen1a (Magic) | 4-byte | $1–3 | Cheapest, widely available, Flipper writes directly | Detectable by some readers (they send a "magic wakeup" command and Gen1a responds — real cards don't) |
| Gen2 (CUID) | 4-byte | $3–5 | Not detectable by Gen1a checks, writes via standard commands | Slightly more expensive, some can only be written once |
| Gen4 (Ultimate Magic) | 4 or 7-byte | $5–10 | Supports both UID lengths, undetectable, can configure advanced features | Most expensive, configuration can be complex |
📖 The Complete Cloning Process
Step 1: Initial Read (Dictionary Attack) — ⏱️ 1-5 minutes
This is your first attempt. The Flipper tries a large list of known default keys against every sector. Many cards ship with default keys (like FFFFFFFFFFFF or A0A1A2A3A4A5) and some building managers never change them all.
MIFARE Classic 1K and the UID (e.g., UID: AB CD EF 12). Then the dictionary attack begins automatically.Found keys: X/32 and Sectors read: Y/16. This runs through hundreds of known keys. Let it finish completely — do NOT pull the card away or press back. It takes 1-5 minutes.What you'll see when it finishes:
- 32/32 keys found, 16/16 sectors read — 🎉 You got lucky! The card uses all default keys. Skip straight to Step 6 (Save).
- Some keys found (e.g., 8/32, 4/16) — Partial success. You have some keys but not all. Continue to Step 2.
- 0/32 keys, 0/16 sectors — The card uses no default keys at all. That's fine — continue to Step 2. This is normal for well-configured systems.
Step 2: Extract MF Keys — Capture Reader Nonces — ⏱️ 30 seconds – 3 minutes
This is the most important step and the one that makes MIFARE Classic cloning actually work. You need physical access to the card reader (the door lock, turnstile, or whatever device reads the card).
Troubleshooting Step 2:
- "No nonces captured" — You're holding the Flipper too far from the reader, or at the wrong angle. Try pressing it flat and centered. Some readers have the antenna at the top, bottom, or a specific spot — experiment with position.
- The reader opens the door — This actually means the reader uses UID-only authentication (it only checks the card's ID number, not the encrypted data). This is extremely insecure and means cloning is trivially easy — you may already have enough data from Step 1!
- The reader doesn't react at all — The reader might be offline, might not be NFC (could be 125 kHz RFID), or might use a non-MIFARE protocol like DESFire. Make sure the original card actually works on this reader.
- Only 1-2 nonces captured — Some readers only authenticate one sector. That's fine — you'll get keys for that sector, then repeat this step to collect nonces for other sectors in subsequent rounds.
Step 3: Crack Keys with MFKey App — ⏱️ 30 seconds – 30 minutes
Now you turn those captured nonces into actual sector keys. The MFKey app does the heavy math.
Cracking sector 3... and then Found key: A0B1C2D3E4F5. This can take anywhere from 30 seconds to 30 minutes depending on how many nonces were captured and the complexity of the keys.Found X new keys. These keys are automatically added to your Flipper's key dictionary for future reads.Troubleshooting Step 3:
- "Found 0 new keys" — Not enough nonces were captured, or the nonces were corrupted (Flipper moved during capture). Go back to Step 2 and collect more nonces. Hold the Flipper more steady this time and collect for longer.
- It's taking a very long time (>30 min) — This is unusual. The computation should be done in minutes. Check that the Flipper has enough battery and let it run.
Step 4: Read Again with New Keys — ⏱️ 1-5 minutes
Found keys: 18/32, Sectors read: 9/16 (higher numbers than Step 1).Step 5: Nested Attack (If Needed) — ⏱️ 1-10 minutes
If you have at least one valid key but can't get the rest through mfkey32, the Nested Attack is your next weapon. It exploits another Crypto-1 weakness: if you know one key, you can mathematically derive the others.
Step 6: Save the Full Dump — ⏱️ 10 seconds
Office_Badge or Gym_Card. Avoid spaces — use underscores./ext/nfc/YourName.nfc on the SD card. This file contains everything needed to emulate or clone the card.Step 7: Emulate — ⏱️ Instant
Troubleshooting Emulation:
- Door opens — ✅ Perfect clone! You're done.
- Reader flashes red / beeps angrily / nothing happens — The reader might be too fast for Flipper's emulation (some readers have strict timing requirements). Try repositioning. If it consistently fails, you need a physical magic card (Step 8).
- Works sometimes but not always — Position and angle matter enormously. Practice finding the sweet spot. Some readers have their antenna at a specific location (top, bottom, or center of the pad).
Step 8: Write to Magic Card (If Emulation Fails) — ⏱️ 30 seconds
.nfc file — if the UID is 4 bytes (like AB CD EF 12), a Gen1a or Gen2 card works. If it's 7 bytes (like 04 AB CD EF 12 34 56), you need a Gen4 card.Troubleshooting Physical Clone:
- "Write failed" — The card might not be a real magic card (some cheap cards are mislabeled), or it's the wrong type (Gen1a when you need Gen2). Try a different card from the pack.
- Card written successfully but reader rejects it — If you used Gen1a, some readers perform a Gen1a detection test (they send a special "magic wakeup" command that only Gen1a cards respond to). Try a Gen2 or Gen4 card instead.
- Card was working but stopped — The building may have updated their system, or the original card was deactivated. The clone mirrors the original — if the original stops working, the clone will too.
📋 What is the Schlage 9691T?
The Schlage 9691T is a small key fob — about the size of a guitar pick — commonly given to apartment residents in buildings with Schlage access control systems. What makes it special (and interesting for us) is that it contains two completely separate chips operating at different radio frequencies:
| Chip | Frequency | Technology | What It Opens | Cloning Difficulty |
|---|---|---|---|---|
| 🔵 Low-Frequency Chip | 125 kHz | HID ProxCard II compatible (or EM4100) | Building front door, parking garage, gates, elevators, common areas | Easy — no encryption, read & copy in seconds |
| 🟠 High-Frequency Chip | 13.56 MHz | MIFARE Classic 1K (Crypto-1) | Apartment door (Schlage deadbolt lock) | Advanced — encrypted, requires key cracking (but it IS crackable) |
Important: The number printed on the back of the fob (something like 6A13183702-001313) is just the factory serial number. It is NOT the card data, NOT the access code, and NOT useful for cloning. The "9691T" label on the front identifies the fob model. The actual access data is stored digitally inside the chips and can only be read with a device like the Flipper.
🛒 Shopping List — What You Need Before Starting
| Item | Have It? | Where to Buy | Cost | Notes |
|---|---|---|---|---|
| Flipper Zero + Momentum firmware | ✅ Yes | — | — | Must have Momentum (or Xtreme/RogueMaster) for MFKey + Nested apps |
| Your Schlage 9691T fob | ✅ Yes | — | — | The original fob you want to clone |
| T5577 blank cards | ✅ Yes | — | — | For cloning the 125 kHz (building entrance) side |
| UID-changeable MIFARE Classic 1K cards | ❌ Need | Amazon: search "UID changeable MIFARE Classic 1K NFC card" or "CUID MIFARE Classic 1K" or "Magic Gen1a MIFARE card" | $3–10 for a pack | For cloning the 13.56 MHz (apartment door) side. Buy 2-3 cards in case one fails. |
| (Optional) Combo key fob | ❌ Optional | AliExpress/Amazon: search "T5577 + S50 combo key fob" or "dual frequency key fob 125kHz 13.56MHz" | $5–15 | A single fob with BOTH 125 kHz T5577 + 13.56 MHz MIFARE S50 chips — lets you carry one clone fob instead of two separate cards |
🗂️ Overview: The Plan
You'll clone this fob in two completely separate operations, because the fob has two completely separate chips:
- Part 1: Clone the 125 kHz side (building common areas) — Takes 5 minutes, easy, no encryption to crack
- Part 2: Clone the 13.56 MHz side (apartment door) — Takes 30 min to 2 hours, requires cracking MIFARE Classic keys
You can do them in either order. Part 1 is simpler, so let's start there for a quick win.
🔵 Part 1: Clone the 125 kHz Side (Building Entrance)
Difficulty: Easy | Time: 5 minutes | What you need: Flipper + fob + T5577 blank card
The 125 kHz chip in your 9691T has zero encryption. It broadcasts an ID number in the clear, like shouting your name across a room. Anyone with a reader can hear it. That makes this part trivially easy.
Step 1.1: Read the 125 kHz Chip
HID H10301FC: 123 Card: 45678
or
EM4100ID: 6A 01 23 45 67
Either is fine — the Flipper auto-detects the protocol.
Schlage_Building using the on-screen keyboard. Press Save.
Troubleshooting:
- Nothing detected after 10+ seconds — You're probably holding the fob in the wrong spot. Remember: bottom edge for 125 kHz. Move the fob slowly along the bottom edge until it clicks. Also make sure you're in the RFID menu, not the NFC menu.
- Detected as "Unknown" — Try "Extra → Read ASK" or "Extra → Read PSK" from the RFID menu. Some less-common protocols need manual selection.
Step 1.2: Write to T5577 Blank Card
Schlage_Building).
🟠 Part 2: Clone the 13.56 MHz MIFARE Classic Side (Apartment Door)
Difficulty: Advanced | Time: 30 min – 2 hours | What you need: Flipper + fob + access to your Schlage door reader + magic NFC card (for physical clone)
The 13.56 MHz chip is a MIFARE Classic 1K with Crypto-1 encryption. Unlike the 125 kHz side, the data is encrypted — you can't just read and copy it. You need to crack the encryption keys first. The good news: MIFARE Classic's encryption has been broken since 2008, and the Flipper has all the tools to exploit it. It just takes a few steps.
The goal: Recover all 32 keys (16 sectors × 2 keys each) so you can read every byte of data on the card, then write an exact copy to a magic card.
Step 2.1: Initial Read — Dictionary Attack — ⏱️ 1-5 minutes
MIFARE Classic 1K and displays the UID (e.g., UID: AB CD EF 12). Note whether the UID is 4 bytes or 7 bytes — you'll need this info when buying magic cards.
Found keys: X/32, Sectors read: Y/16. The Flipper is trying 1700+ known default keys against every sector. Do NOT move the fob or press any buttons — let it run to completion. This takes 1-5 minutes.
Likely result:
Found keys: 0-8/32, Sectors read: 0-4/16 — Schlage systems typically use non-default keys, so expect partial or zero results from dictionary alone. This is normal! Continue to Step 2.2.
Lucky result:
Found keys: 32/32, Sectors read: 16/16 — All default keys! Skip straight to Step 2.6 (Save). This is rare for Schlage but possible.
Schlage_Apartment. You'll build on this partial read in subsequent steps.
Step 2.2: Extract MF Keys — Capture Reader Nonces — ⏱️ 30 sec – 3 min
This is the key step (literally). You need to go to your actual Schlage door reader — the device mounted on or near your apartment door that you normally tap the fob against.
Schlage_Apartment (the card you saved in Step 2.1). The Flipper will emulate this card's UID when talking to the reader.
Collecting nonces... and a counter incrementing. The Schlage reader is attempting to authenticate with what it thinks is your fob, and the Flipper is capturing the cryptographic handshake data.
What you might notice:
- The reader may beep — that's normal, it's attempting a read
- The reader LED may flash (red, green, or orange) — that's normal
- The reader may actually open the door lock — this means the Schlage reader uses UID-only authentication (very insecure!). If this happens, cloning is even easier — just the emulation from Step 2.1 might be enough.
Troubleshooting:
- 0 nonces captured — Wrong position. The Schlage reader antenna might be at the top or bottom of the pad, not the center. Try moving the Flipper slowly across the face of the reader. Also ensure you selected the right saved card.
- Reader doesn't react at all — The reader might be powered down, or it might be a Bluetooth-only Schlage lock (like Schlage Encode) which doesn't use NFC at all. Verify that your fob actually works on this reader.
- Only 1-2 nonces even after 30 seconds — Some readers authenticate slowly. That's OK — even 1-2 nonces can yield keys. Proceed to Step 2.3.
Step 2.3: Crack Keys with MFKey — ⏱️ 30 sec – 30 min
Cracking sector X... and then displays found keys. This can take 30 seconds to 30 minutes. For Schlage nonces, expect 1-5 minutes typically.
Found X new keys. These are automatically added to your key dictionary. If 0 keys found: go back to Step 2.2 and collect more nonces (hold longer, try different positions on the reader).
Step 2.4: Read Again — ⏱️ 1-5 minutes
2/32 keys to 14/32 keys.
→ YES: 🎉 Skip to Step 2.6!
→ NO: Repeat Steps 2.2 → 2.3 → 2.4. Each round recovers more keys.
→ STUCK (same numbers after 2-3 rounds): Try the Nested Attack in Step 2.5.
Step 2.5: Nested Attack (If Stuck) — ⏱️ 1-10 minutes
If you have some keys but repeating Steps 2.2-2.4 isn't finding more, the Nested Attack can fill in the gaps.
Schlage_Apartment card file — The app needs a card that has at least one known key.
Step 2.6: Save the Complete Card Dump — ⏱️ 10 seconds
Schlage_Apartment (overwrite the old partial file or use a new name like Schlage_Apt_Full).
/ext/nfc/Schlage_Apartment.nfc on the SD card. This file contains the complete card dump: all 16 sectors of data, all 32 keys, and the UID. This is everything you need.
Step 2.7: Test — Emulate on Flipper — ⏱️ 5 seconds
If the door doesn't open: Flipper emulation can be too slow for some Schlage readers. Don't worry — a physical magic card (Step 2.8) has a much higher success rate because it uses real MIFARE silicon.
Step 2.8: Write to Magic NFC Card — ⏱️ 30 seconds
Troubleshooting the magic card:
- Reader rejects the magic card — If you used Gen1a and the reader does Gen1a detection (sends a magic wakeup command), the reader knows it's a clone. Try a Gen2 (CUID) card — these are not detectable by the Gen1a detection method.
- Write failed — Bad magic card or wrong type. Try another card from the pack. Make sure it's actually a UID-changeable card, not a regular MIFARE Classic (which has read-only Block 0).
- Everything written but door still doesn't open — Double-check that all 32 keys were recovered (re-read the original fob and verify 32/32). If some sectors were partially read, the clone will be incomplete.
🎯 What You End Up With
| Clone Method | What Opens | Pros | Cons |
|---|---|---|---|
| Flipper Emulation (RFID) | Building entrance, garage, common areas | No extra cards needed, always with you | Need to navigate Flipper menus each time |
| T5577 Card | Building entrance, garage, common areas | Just tap and go, works like original | Extra card to carry |
| Flipper Emulation (NFC) | Apartment door | No extra cards needed | May not work on some picky Schlage readers |
| Magic NFC Card | Apartment door | 100% hardware compatibility, just tap | $2-5 per card |
| T5577 + S50 Combo Fob | BOTH building entrance AND apartment door | Single fob replaces both functions | $5-15, need to write both sides |
🔧 Troubleshooting Reference
| Problem | Likely Cause | Solution |
|---|---|---|
| NFC read detects nothing | Fob positioned wrong | NFC antenna is CENTER of Flipper's back — hold fob flat and centered |
| RFID read detects nothing | Fob positioned wrong | RFID antenna is BOTTOM EDGE of Flipper — hold fob against the short bottom edge |
| 0 keys after dictionary attack | Non-default keys (normal for Schlage) | Continue to Extract MF Keys step — the real keys come from the door reader |
| 0 nonces from Extract MF Keys | Bad positioning on reader | Move Flipper slowly across the reader face, try different positions |
| MFKey finds 0 new keys | Not enough nonces, or corrupted capture | Go back and collect more nonces — hold Flipper against reader for longer |
| Stuck at partial keys after 3+ rounds | Some sectors need nested attack | Use Apps → NFC → Mifare Nested with the live fob on the Flipper |
| Emulation doesn't open the door | Reader timing too strict for emulation | Use a physical magic card (Gen1a/Gen2/Gen4) instead |
| Magic card rejected by reader | Gen1a detection by reader | Switch to Gen2 (CUID) or Gen4 card |
| Door opened during Extract MF Keys | Reader uses UID-only auth (very insecure) | Good news: cloning is easier! Just UID emulation may be enough — save and emulate |
| T5577 doesn't work at building entrance | Wrong protocol written, or reader is NFC not RFID | Re-read the original fob with RFID → Read, verify protocol, re-write T5577 |
💡 Tips & Tricks
- Antenna positions matter most — This is the #1 source of failed attempts. Remember: NFC = center back, RFID = bottom edge. Getting this wrong wastes time.
- Don't interrupt the dictionary attack — Let it run all the way through. It tries every key in the dictionary. Interrupting means you miss potential key matches.
- More nonces = better — When at the door reader, collect as many nonces as you can. 10+ nonces is ideal. More data gives MFKey more chances to crack each key.
- The combo fob option is slick — If you buy a "T5577 + MIFARE S50" dual-frequency fob, you can write BOTH the 125 kHz and 13.56 MHz data to a single fob. One fob for everything, just like the original 9691T.
- Keep your original fob safe — Don't lose it until you've verified your clones work everywhere. If you need to re-read or re-do any steps, you'll need the original.
- Check the .nfc file — The saved file at
/ext/nfc/Schlage_Apartment.nfcis a text file. You can open it on a computer via the SD card. Look forUID:to check byte length, andKey A:/Key B:lines to verify all 32 keys were recovered. Any line with??means that key wasn't cracked yet.
Low-frequency RFID for building access cards, hotel keys, and animal tracking chips. Simpler than NFC — most 125 kHz cards have zero encryption, making them trivially copyable. This section covers how the technology works, every supported protocol, the universal T5577 blank card, and real security implications.
125 kHz RFID uses electromagnetic induction — the same principle as a wireless phone charger, but instead of transferring power to charge a battery, it transfers just enough power to wake up a tiny chip and make it broadcast its ID.
How the Read Process Works
125 kHz vs NFC (13.56 MHz) — Key Differences
| Property | 125 kHz RFID | 13.56 MHz NFC |
|---|---|---|
| Read Range | 5–10 cm (up to 30cm+ with directional antenna) | 1–4 cm typical |
| Encryption | None (tag just broadcasts ID) | Optional (Crypto1, DESFire AES, etc.) |
| Complexity | Simple — ID only | Complex — sectors, keys, apps |
| Speed | Slow (low data rate) | Fast (high data rate) |
| Flipper Hardware | Software-defined on MCU (no dedicated chip!) | ST25R3916 NFC IC |
| Antenna Location | Bottom edge of Flipper | Center back of Flipper |
| Cost Per Tag | $0.10–0.50 | $0.30–2.00 |
Place any 125 kHz card/fob on the bottom edge of the Flipper. It auto-detects the protocol and reads the ID.
- Detection takes 1-5 seconds depending on card type
- Shows protocol name, ID number, and raw data
- Save to SD card for later emulation or cloning
- Antenna is on the bottom edge — NOT the back like NFC
Emulate any saved 125 kHz card. Flipper generates the exact radio response a real card would.
- Place Flipper directly on the reader (close contact required for 125 kHz)
- Emulation starts immediately — Flipper modulates its antenna coil to mimic the tag
- Works with all supported protocols
- Multiple cards saved on one Flipper = all your access cards in one device
Create RFID tags from known data without reading a physical card. Enter protocol, ID, and data manually.
- Select protocol from the full list (EM4100, HID, Indala, etc.)
- Enter the ID value in the expected format
- Useful when you know the ID from documentation, database dumps, or other tools
- Saves like a normal read — can emulate or write to T5577
Brute force RFID readers by emulating cards with random or sequential UIDs. Tests how access control systems respond to unknown cards.
- Select protocol (EM4100, HID, etc.)
- Choose attack type: random UIDs, sequential, or custom range
- Flipper rapidly emulates cards while you hold it to the reader
- If the reader opens — you found a valid ID
Attack Types
| Mode | Description | Speed |
|---|---|---|
| Sequential | Tries IDs in order (0001, 0002, 0003...) | Slow but thorough |
| Random | Tries random IDs from full range | Good for testing reader behavior |
| Custom Range | IDs within a specific range you define | Fastest if you know the ID range |
Capture and replay raw modulation data without protocol decoding. Similar to Sub-GHz Read RAW — records the exact modulation pattern.
- Useful for unknown or unsupported 125 kHz protocols
- Captures ASK or PSK modulation patterns
- Can be replayed directly — Flipper reproduces the exact modulation
- Good for analysis: export the raw data and examine the bitstream
Every 125 kHz RFID protocol supported by Flipper Zero + Momentum firmware. None of these have encryption — every tag just broadcasts its ID in the clear.
| Protocol | Bits | Security | Cloneable | Common Uses |
|---|---|---|---|---|
| EM4100 | 64 (40-bit ID) | 🔴 None | ✅ T5577 | Most common worldwide — generic access cards, hotel key cards, gym fobs |
| EM4100/32 | 32 | 🔴 None | ✅ T5577 | 32-bit variant of EM4100 |
| EM4100/16 | 16 | 🔴 None | ✅ T5577 | 16-bit variant of EM4100 |
| HID H10301 | 26 (Wiegand) | 🔴 None | ✅ T5577 | HID ProxCard II — most widely deployed access system in North America. Corporate offices, universities. |
| HID ProxII Generic | Various | 🔴 None | ✅ T5577 | Extended HID formats beyond 26-bit. Corporate access, government. |
| HID Corporate 1000 | 35 | 🔴 None | ✅ T5577 | Large enterprise HID deployments |
| Indala 26 | 26 | 🔴 None | ✅ T5577 | Motorola/HID Indala format — government buildings, military facilities, secure sites |
| AWID | 26 | 🔴 None | ✅ T5577 | Applied Wireless ID — corporate access control |
| FDX-A | — | 🔴 None | ✅ T5577 | ISO 11784 animal identification (older standard) |
| FDX-B | 128 | 🔴 None | ✅ T5577 | ISO 11785 animal identification — pet microchips (dogs, cats), livestock tracking. Read your pet's chip ID! |
| Kantech ioProx | 26/36 | 🔴 None | ✅ T5577 | Kantech access control systems |
| Viking | — | 🔴 None | ✅ T5577 | Viking access control systems |
| Jablotron | 40 | 🔴 None | ✅ T5577 | Czech security alarm systems |
| Paradox | 44 | 🔴 None | ✅ T5577 | Paradox security systems |
| PAC/Stanley | — | 🔴 None | ✅ T5577 | PAC International access control (UK, Europe) |
| Keri | — | 🔴 None | ✅ T5577 | Keri Systems access control |
| GProxII | 36 | 🔴 None | ✅ T5577 | Guardall ProxII security systems |
| Gallagher | — | 🔴 None | ✅ T5577 | Gallagher security — very common in New Zealand and Australia |
| Pyramid | 26 | 🔴 None | ✅ T5577 | Farpointe Data access control |
| NexWatch | — | 🔴 None | ✅ T5577 | Honeywell NexWatch access control |
| Securakey | — | 🔴 None | ✅ T5577 | Securakey access control systems |
| Noralsy | — | 🔴 None | ✅ T5577 | French access control systems |
| EM-Micro EM4305 | — | 🔴 None | ✅ T5577 | Programmable transponder (similar to T5577 but from EM Microelectronic) |
| IdTeck | 26 | 🔴 None | ✅ T5577 | Korean access control systems |
| Command | Description | Example |
|---|---|---|
rfid read | Read any 125 kHz card | rfid read normal |
rfid write | Write data to a T5577 card | rfid write EM4100 6A01234567 |
rfid emulate | Emulate an RFID tag | rfid emulate EM4100 6A01234567 |
rfid raw_read | Read raw modulation data | rfid raw_read ask /ext/rfid/raw.rfid |
rfid raw_emulate | Emulate raw data | rfid raw_emulate /ext/rfid/raw.rfid |
The T5577 (also called T5567/T55x7) is a programmable 125 kHz RFID transponder that can emulate virtually any 125 kHz protocol. It's the "magic card" equivalent for low-frequency RFID — and after 20+ years, nothing has superseded it.
What Makes It Special
- Can be programmed to emulate EM4100, HID, Indala, AWID, Paradox, FDX-B, Gallagher, and many more
- Re-writable unlimited times — clone one card today, a different card tomorrow
- Costs $0.50–2 per unit on AliExpress, Amazon, or lab401.com
- Available as cards, keyfobs, wristbands, stickers, and implantable capsules
- Has been the universal RFID blank since the early 2000s — still unmatched
Memory Architecture
Understanding T5577's blocks helps when troubleshooting failed clones:
Block 0 is the key — it configures the modulation type (ASK, FSK, PSK), bit rate, and how many data blocks to transmit. When the Flipper writes a protocol to a T5577, it sets Block 0 to match that protocol's parameters. When programmed as EM4100, a T5577 IS an EM4100 card to any reader.
How to Clone
Where to Buy
| Form Factor | Price Range | Best For |
|---|---|---|
| Standard card (ISO) | $0.50–1.50 ea | Building access, wallet carry |
| Keyfob | $0.50–2 ea | Keychain carry, gym/pool |
| Wristband | $1–3 ea | Hands-free access |
| Sticker/Coin tag | $0.30–1 ea | Stick inside phone case or badge |
| Dual-frequency fob (T5577 + MIFARE) | $5–15 ea | Buildings with both 125 kHz and NFC readers |
125 kHz RFID access control is fundamentally broken from a security standpoint. Here's why:
A coin-shaped metal key containing a tiny microchip. Also called "Dallas Touch Memory" or "contact memory" — used in apartment intercoms, building access, elevators, and parking garages worldwide. Not magnetic, despite what everyone calls them. The Flipper can read, emulate, write, and fuzz all three iButton protocols.
iButton is a stainless steel coin (~16mm diameter) that contains a tiny chip with a unique ID. It was invented by Dallas Semiconductor (now Maxim/Analog Devices) and is extremely common in Europe, Russia, and parts of Asia and South America for building access.
Physical Contacts
- Center pad = DATA+ (signal line)
- Outer ring = GND (ground)
- Just two contacts — that's all it takes
Where You'll Find Them
- Apartment intercoms and building entrances
- Elevator access control
- Parking garages and gates
- Hotel room locks (older systems)
Beyond Access Control
- DS18B20 — temperature sensors (same 1-Wire protocol)
- DS1904 — real-time clocks
- DS1963S — SHA-1 crypto iButtons (banking/vending)
The key has no battery — it's entirely powered by the reader the instant you make contact.
The 1-Wire protocol is beautifully minimal. A single wire handles power delivery AND bidirectional data using precise timing of voltage pulses.
The Roles
- Master (reader) — initiates all communication, provides power
- Slave (key/sensor) — responds only when spoken to
Data Encoding: It's All About Timing
Data bits are encoded by how long the line is pulled low:
- Reset pulse: Master pulls line low for
480μs→ slave responds with a "presence pulse" (I'm here!) - Write 0: Pull low for
60μs(long = zero) - Write 1: Pull low for
<15μsthen release (short = one) - Read: Master pulls low briefly, slave either holds low (0) or lets it float high (1)
Timing Windows
| Operation | Duration | What Happens |
|---|---|---|
| Reset | 480μs low | Master resets bus, all slaves listen |
| Presence | 60–240μs low | Slave pulls low to say "I exist" |
| Write 1 | <15μs low | Short pulse = logical 1 |
| Write 0 | 60μs low | Long pulse = logical 0 |
| Read slot | ~60μs total | Master samples at 15μs mark |
| Full ID transfer | ~10–20ms | Reset + ROM cmd + 64 bits |
Every Dallas iButton transmits exactly 8 bytes (64 bits):
Breakdown
- Byte 1 — Family Code: Identifies the chip type.
0x01= DS1990A (most common access key) - Bytes 2–7 — Serial Number: 48-bit unique ID. 281 trillion possible combinations.
- Byte 8 — CRC-8: Dallas polynomial checksum. Catches transmission errors.
Common Family Codes
| Code | Chip | Purpose |
|---|---|---|
0x01 | DS1990A | Serial number iButton (access control) |
0x09 | DS1982 | 1 Kbit EPROM memory |
0x10 | DS18S20 | Temperature sensor |
0x28 | DS18B20 | Temperature sensor (most common) |
0x22 | DS1822 | Econo temperature sensor |
0x33 | DS1963S | SHA-1 protected iButton |
01 as the first byte — that's a standard DS1990A access key. This is what 95% of building intercoms use.Not all iButtons speak the same language. There are three distinct protocols, and the Flipper supports all of them.
| Protocol | Origin | Key Length | Encoding | Common In |
|---|---|---|---|---|
| Dallas | USA (Maxim/Dallas Semi) | 8 bytes | 1-Wire digital | Worldwide |
| Cyfral | Russia | 2 bytes | Resistance-based | Russia, CIS |
| Metakom | Russia | 4 bytes | Resistance + parity | Russia, CIS |
Dallas (DS1990A)
- The global standard — used almost everywhere iButtons exist
- Uses the 1-Wire digital protocol described above
- Cheapest to clone — writable blanks cost $0.50–1 each
- Zero encryption, zero authentication — just an ID number
Cyfral
- Russian-developed protocol using current/resistance instead of voltage levels
- Only 2 bytes (16 bits) — far fewer possible IDs
- Different electrical signaling makes it trickier to duplicate
- Common in older Russian and CIS-country intercoms
Metakom
- Another Russian protocol, similar to Cyfral but with parity checking
- 4 bytes (32 bits) — more IDs than Cyfral, fewer than Dallas
- Also resistance-based signaling
- Found alongside Cyfral in Russian apartment buildings
Reading an iButton is instant — just press the key against the Flipper's iButton pad.
Once you've saved a key, you can turn your Flipper into that key.
Tips for Stubborn Readers
- Emulation uses the LEFT two pins on the iButton pad (different from read!)
- ~80% of readers work on the first try
- For recessed or awkward readers, use GPIO pins with wires to extend the contacts
- The Flipper only emulates one key at a time — no auto-cycling
- Try different angles and pressures — some readers need firm, centered contact
Don't have the physical key? You can enter the ID manually.
EF CD 9B 78 56 A4, the actual serial might be A4 56 78 9B CD EF.Unlike emulation (which uses your Flipper as the key), writing creates a permanent physical clone on a blank iButton.
Writable Blank Keys
| Blank Type | Protocol | Price | Notes |
|---|---|---|---|
| RW1990 | Dallas | $0.50–1 | Most common writable blank. Re-writable. |
| TM2004 | Dallas | $1–2 | Also rewritable, slightly newer. |
| TM01C | Multi-protocol | $2–3 | Supports Dallas, Cyfral, and Metakom. |
How to Clone
The iButton Fuzzer app tries random or sequential IDs against a reader to test if any are valid. This is a brute-force access test.
- Select protocol (Dallas, Cyfral, or Metakom)
- Choose attack mode: random, sequential, or custom range
- Press the Flipper's iButton pad against the reader
- Flipper cycles through IDs rapidly
- If the door opens — you've found a valid ID
Convert between different iButton file formats. Useful when sharing keys between different Flipper firmware versions or converting community-shared key files.
| Command | Description | Example |
|---|---|---|
ikey read | Read an iButton key | ikey read |
ikey emulate | Emulate a specific key | ikey emulate Dallas 01A456789BCDEF3A |
ikey write | Write ID to a blank key | ikey write Dallas 01A456789BCDEF3A |
iButton Dallas is extremely insecure by modern standards. Here's the breakdown:
The Weaknesses
- No encryption — the ID is transmitted in plaintext every time
- No challenge-response — unlike NFC MIFARE, there's no authentication handshake
- Trivially cloneable — anyone who touches your key for 2 seconds can copy it forever
- Static ID — the key sends the same data every time, no rolling codes
- No mutual authentication — the key trusts any reader, the reader trusts any key with the right ID
Intercom "Defenses" (Easily Defeated)
- Some intercoms try to overwrite/finalize keys on read — this just locks the blank, doesn't prevent future clones from other blanks
- Some systems use whitelists (only registered IDs work) — but there's no way to prevent reading the ID off a valid key
- The only real security is physical: you need to touch the key to read it
Comparison to NFC
| Feature | iButton (Dallas) | NFC (MIFARE Classic) | NFC (DESFire) |
|---|---|---|---|
| Encryption | ❌ None | ⚠️ Weak (Crypto-1) | ✅ AES-128 |
| Authentication | ❌ None | ⚠️ Broken | ✅ Mutual auth |
| Clone difficulty | Trivial | Minutes | Extremely hard |
| Rolling codes | ❌ No | ❌ No | ✅ Optional |
Building Access
- Consolidate your keys — read all your building's iButton keys onto one Flipper. Front door, back door, garage, elevator — all on one device.
- Audit your intercom — use the iButton Fuzzer on your own building's intercom to test if predictable IDs work. Report findings to building management.
- Backup your keys — clone your keys onto RW1990 blanks. Keep spares in your wallet, car, bag.
Beyond Access Control
- Temperature logging — read DS18B20 temperature sensors through the iButton pad (same 1-Wire protocol)
- DIY access system — build your own iButton reader with an Arduino + DS9092 probe. Great for learning 1-Wire.
- Key inventory — read and catalog every iButton key in your household. Know exactly what you have.
Control any IR device — TVs, ACs, projectors, fans, audio systems, and more. Comes with a universal remote database plus the ability to learn any remote signal.
Pre-built remote databases that work with thousands of devices out of the box. No learning required.
| Remote Type | Functions | Supported Brands |
|---|---|---|
| 📺 TV | Power, Volume, Channel, Mute, Input, Menu | Samsung, LG, Sony, Vizio, TCL, Hisense, Panasonic, Philips, Sharp, Toshiba, and 100+ more |
| ❄️ AC | Power, Temp Up/Down, Mode, Fan Speed, Swing | Daikin, Mitsubishi, LG, Samsung, Carrier, Fujitsu, Gree, Haier, Toshiba, and 200+ more |
| 🔊 Audio | Power, Volume, Mute, Source | Bose, Sony, JBL, Samsung, LG, Yamaha, Denon, and more |
| 📽️ Projector | Power, Input, Volume | Epson, BenQ, ViewSonic, Optoma, and more |
| 🌀 Fan | Power, Speed, Oscillation | Various brands |
Point any existing IR remote at the Flipper to capture individual button signals.
- Go to Infrared → Learn New Remote
- Point the remote at Flipper's IR receiver (top of device)
- Press a button on the remote — Flipper captures the signal
- Name the button (e.g., "Power", "Vol Up") and save
- Repeat for each button you want to capture
- Result: a custom remote file on your SD card
| Command | Description | Example |
|---|---|---|
ir tx | Transmit decoded IR signal | ir tx NEC 04 08 |
ir rx | Receive and decode IR signal | ir rx or ir rx raw |
ir universal list | List available universal remotes | ir universal list tv |
ir universal | Send universal remote signal | ir universal tv POWER |
Turn the Flipper into a keyboard that types at superhuman speed. Execute scripts, exfiltrate data, or deploy payloads — via USB or wirelessly over Bluetooth.
Plug the Flipper into a computer's USB port. It registers as a keyboard and types pre-programmed keystrokes at ~200 characters/second.
How It Works
- Flipper identifies as a USB HID keyboard (no drivers needed)
- Executes DuckyScript files (.txt) from the SD card
- Compatible with Hak5 Rubber Ducky scripts
- Works on Windows, macOS, Linux, Android (with OTG)
Pre-loaded Scripts
- Demo scripts — opens Notepad and types a message
- qFlipper installer — downloads and installs the Flipper management tool
Creating Custom Scripts
Create .txt files in /ext/badusb/ on the SD card:
Momentum exclusive. Same concept as BadUSB, but over Bluetooth. No USB cable needed.
How It Works
- Flipper advertises as a Bluetooth keyboard
- Target device pairs (or auto-pairs if enabled)
- Flipper executes DuckyScript wirelessly
- Works from up to 10 meters away
Why This Is Powerful
- No physical access needed — just Bluetooth range
- Works on locked phones (some Android versions accept BT keyboard input on lock screen for certain functions)
- Leave-behind attack — pair, walk away, execute later
- Uses the same DuckyScript files as USB BadUSB
| Command | Description | Example |
|---|---|---|
STRING | Type a string of characters | STRING Hello World |
STRINGLN | Type string + Enter | STRINGLN dir /b |
DELAY | Wait N milliseconds | DELAY 500 |
ENTER | Press Enter key | ENTER |
GUI / WINDOWS | Windows/Super key | GUI r (Win+R) |
ALT | Alt key (+ combo) | ALT F4 |
CTRL | Control key (+ combo) | CTRL c |
SHIFT | Shift key (+ combo) | SHIFT TAB |
TAB | Tab key | TAB |
ESC / ESCAPE | Escape key | ESC |
UP/DOWN/LEFT/RIGHT | Arrow keys | DOWN DOWN ENTER |
CAPSLOCK | Caps Lock | CAPSLOCK |
DELETE | Delete key | DELETE |
BACKSPACE | Backspace key | BACKSPACE |
HOME / END | Home/End keys | HOME |
INSERT | Insert key | INSERT |
PAGEUP / PAGEDOWN | Page Up/Down | PAGEUP |
PRINTSCREEN | Print Screen | PRINTSCREEN |
MENU / APP | Context menu key | MENU |
F1–F12 | Function keys | F5 |
REM | Comment (not executed) | REM This is a comment |
REPEAT | Repeat previous line N times | REPEAT 5 |
DEFAULTDELAY | Set default delay between lines | DEFAULTDELAY 100 |
SYSRQ | System Request key (Linux) | SYSRQ |
DuckyScript 3.0 Advanced (Momentum Support)
The WiFi Dev Board (ESP32-S2) turns your Flipper into a WiFi hacking platform. ESP32 Marauder is the most popular firmware — providing WiFi scanning, deauth attacks, beacon spam, packet capture, evil portals, and more.
Hardware
- Official WiFi Dev Board — ESP32-S2 based, plugs directly into Flipper GPIO
- Third-party ESP32 boards — ESP32-WROOM, ESP32-S3, etc. (need wiring)
- Connected via UART over GPIO (pins 13/14 for TX/RX)
Flash Marauder
| Command | Description | Notes |
|---|---|---|
scanap | Scan for WiFi access points | Lists all visible APs with SSID, BSSID, channel, RSSI |
scansta | Scan for WiFi stations (clients) | Shows connected devices and their associated APs |
sniffbeacon | Sniff beacon frames | Passive — captures AP advertisements |
sniffdeauth | Sniff deauth frames | Detect deauth attacks in progress |
sniffpmkid | Sniff PMKID frames | Capture PMKID for offline cracking (WPA2) |
sniffpwnagotchi | Detect nearby Pwnagotchis | Identifies Pwnagotchi devices via beacon frames |
sniffprobe | Sniff probe requests | See what networks nearby devices are looking for |
sniffraw | Raw 802.11 packet capture | Saves to PCAP for Wireshark analysis |
sniffesp | Sniff ESP-NOW protocol | Captures ESP-NOW packets between ESP32 devices |
stopscan | Stop any running scan/attack | Always run this before starting a new scan |
| Command | Description | Target |
|---|---|---|
attack -t deauth | Deauthentication attack — kicks clients off WiFi | Selected AP or all |
attack -t beacon -l | Beacon spam from list — floods area with fake SSIDs | From saved list |
attack -t beacon -r | Beacon spam with random SSIDs | Random names |
attack -t beacon -rr | Rickroll beacon spam — floods with Rick Astley lyrics | Rickroll SSIDs |
attack -t probe | Probe request flood | Selected APs |
attack -t deauth -c | Targeted deauth on specific channel | Specific channel |
Typical Attack Workflow
| Command | Description |
|---|---|
list -a | List scanned access points |
list -s | List scanned stations (clients) |
list -c | List scanned SSIDs for clone portal |
select -a <n> | Select an AP by index number |
select -s <n> | Select a station by index number |
select -a all | Select all APs |
clearlist -a | Clear AP list |
clearlist -s | Clear station list |
channel <n> | Set WiFi channel (1-14) |
channel -h | Enable channel hopping |
update | Check for firmware updates |
reboot | Reboot the ESP32 |
Creates a fake WiFi captive portal (like hotel/airport WiFi login pages) to harvest credentials.
How It Works
Setup
- Upload HTML templates to SD card:
/ext/portal/ - Templates available: Google login, Facebook, WiFi portal, Microsoft, custom
- Marauder command:
evil portalor configure via the companion app
Creating Custom Portal Pages
| Command | Captures | Output |
|---|---|---|
sniffraw | All 802.11 frames | PCAP file on SD card |
sniffpmkid | PMKID from WPA2 APs | For hashcat cracking |
sniffbeacon | Beacon frames only | AP enumeration |
sniffprobe | Probe requests | Client network history |
sniffdeauth | Deauth frames | Detect attacks |
Capture WPA Handshakes
Ghost ESP is a Momentum-included alternative to Marauder. Built for ESP32, it provides a similar feature set with some differences:
- WiFi scanning — AP and station discovery
- Deauth attacks — kick clients off networks
- Beacon spam — flood with fake SSIDs
- Captive portal — evil portal functionality
- Packet capture — PCAP output
- BLE attacks — BLE spam and scanning (if using ESP32 with BLE support)
- Active development — newer codebase, some unique features
Available under Momentum's GPIO → Ghost ESP app.
Flipper Zero's built-in BLE 5.0 radio enables BLE spam attacks, FindMy tracking, Bluetooth HID devices, and more. Momentum unlocks the full potential.
Generates BLE advertisements that trigger pop-up notifications on nearby phones and computers.
| Target | Effect | Range | Notes |
|---|---|---|---|
| 🍎 Apple | Fake AirPods/AirTag/Apple TV pairing popups | ~10m | Works on iOS 17+. Shows "AirPods Pro found nearby" etc. |
| 📱 Samsung | Fake Galaxy Buds pairing notifications | ~10m | Shows "Galaxy Buds Pro found nearby" on Samsung phones |
| Fake Pixel Buds / Fast Pair popups | ~10m | Triggers Google Fast Pair on Android devices | |
| 🪟 Windows SwiftPair | Bluetooth pairing notification flood | ~10m | Spams Windows PCs with pairing requests |
| 🍏 Sour Apple | iOS device crash (older iOS only) | ~10m | Exploited a bug in iOS < 17.2 — causes settings crashes. Patched. |
Usage
- Navigate to Bluetooth → BLE Spam (Momentum menu)
- Select target platform
- Choose device type to spoof (e.g., AirPods Pro, Galaxy Buds, etc.)
- Start — Flipper begins broadcasting fake BLE advertisements
- Nearby devices within ~10m see pairing popups
Makes your Flipper Zero trackable through Apple's FindMy network — just like an AirTag. Uses the massive network of iPhones worldwide to relay your Flipper's location.
How It Works
- Auto-enabled on Momentum firmware — starts broadcasting at boot
- Flipper broadcasts BLE advertisements mimicking an AirTag
- Nearby iPhones pick up the signal and anonymously relay location to Apple
- You see your Flipper's location in the FindMy app on your iPhone/Mac
- Works even when Flipper is powered off (if battery has charge for BLE)
Setup
- On first Momentum boot, FindMy is configured automatically
- Open FindMy app on iPhone → Items → your Flipper appears as an AirTag-like device
- Configure in Momentum App → BLE → FindMy
Use your Flipper as a Bluetooth keyboard, mouse, or media controller for any device.
- Bluetooth Remote — control media playback, presentations, volume
- Bad Keyboard — wireless BadUSB (DuckyScript over BLE)
- USB Keyboard/Mouse — when connected via USB, Flipper acts as a HID device
Pair with your phone, tablet, or computer like any Bluetooth keyboard. Useful for presentations, remote control, or as an accessibility tool.
18 GPIO pins at 3.3V for connecting WiFi boards, sensors, displays, and custom hardware. Built-in UART, SPI, I2C, and 1-Wire support.
| Feature | Description | Use Case |
|---|---|---|
| GPIO Control | Set pins as input/output, read voltage levels | LED control, button reading, sensor interfacing |
| USB-UART Bridge | Flipper acts as USB-to-serial adapter | Connect to serial consoles, debug embedded devices, ESP32 programming |
| 1-Wire | Dallas 1-Wire protocol interface | iButton emulation, temperature sensors (DS18B20) |
| I2C Scanner | Scan I2C bus for connected devices | Identify connected I2C sensors, displays, etc. |
GPIO Pin Layout
Beyond hacking — Flipper Zero runs games, media players, and essential tools. Momentum includes a huge app library.
Customize your Flipper's identity via the Passport feature:
- Name — custom device name shown on the passport screen
- Level — increases with usage (read cards, send signals, etc.)
- Custom backgrounds — Momentum supports custom passport backgrounds
- Multiple themes — choose from pre-installed passport themes or create your own
Momentum supports 100+ community animation packs that change the idle dolphin animation on the home screen.
- Download packs from the Momentum community
- Place in
/ext/dolphin/on SD card - Select via Momentum App → Desktop → Animations
- Themes include: cyberpunk, pixel art, anime, memes, custom characters
Momentum enables full RGB control of the screen backlight (stock firmware only supports orange).
- Momentum App → LED → Backlight
- Set any RGB color combination
- Rainbow mode — cycles through colors
- Different colors for different events (read success = green, error = red)
A showcase of the most interesting projects and demonstrations. These are the "wow factor" moments that make Flipper Zero special.