Author: Daniel Karling (dankarmulti) Frequency: Multi (LF + HF) Hardware: Generic Proxmark3
Back to Standalone Modes Index | Source Code | Development Guide
A meta-standalone mode that bundles multiple standalone modes into a single firmware image and lets you select which one to run at boot time using the button.
Normally the Proxmark3 can only have one standalone mode compiled in. If you want to switch modes, you must reflash the firmware. DANKARMULTI solves this by wrapping multiple standalone modes into one firmware — you cycle through them with button presses and hold to execute your chosen mode. This is ideal for field work where you need multiple capabilities without a laptop.
- Boot: On entering standalone mode, LEDs indicate the currently selected sub-mode.
- Cycle: Press the button to cycle through available sub-modes. LEDs change to indicate the new selection.
- Execute: Hold the button to launch the selected sub-mode. Once launched, that sub-mode takes full control (LEDs, button, etc.).
- Exit: Exiting the sub-mode returns to the DANKARMULTI selector.
By default, DANKARMULTI includes:
| Slot | Mode | Description |
|---|---|---|
| 1 | HF_MATTYRUN | MIFARE Classic key check → nested → dump → emulate |
| 2 | LF_EM4100RSWB | EM4100 read/sim/write/brute |
| 3 | HF_TCPRST | IKEA Rothult / ST25TA password extractor |
Modes can be customized by editing the
dankarmulti.csource — add or remove#includes and update the mode array.
| LED | Meaning (Selector) |
|---|---|
| A only | Mode 1 selected |
| B only | Mode 2 selected |
| C only | Mode 3 selected |
| D only | Mode 4 selected (if present) |
| A+B | Mode 5 selected (if present) |
Once a sub-mode is launched, that sub-mode's own LED scheme takes over.
| Action | Effect |
|---|---|
| Single click | Cycle to next sub-mode |
| Long hold | Launch selected sub-mode |
stateDiagram-v2
[*] --> Selector : Enter standalone
state Selector {
[*] --> Mode1
Mode1 --> Mode2 : Click
Mode2 --> Mode3 : Click
Mode3 --> Mode1 : Click\n(wraps)
}
Selector --> RunSubMode : Long hold
state RunSubMode {
[*] --> SubModeActive
SubModeActive --> SubModeActive : Sub-mode running\n(own LEDs/button)
}
RunSubMode --> Selector : Sub-mode exits
Selector --> [*] : USB connection
Edit armsrc/Standalone/dankarmulti.c:
- Add
#includefor the desired standalone mode header - Add entry to the
modes[]array with the mode'sRunMod()andModInfo()functions - Recompile:
make clean
make STANDALONE=DANKARMULTI -j
./pm3-flash-fullimagemake clean
make STANDALONE=DANKARMULTI -j
./pm3-flash-fullimage
- Standalone Modes Overview — Full list of all standalone modes
- Advanced Compilation — Compilation with STANDALONE= parameter