Back to Proxmark3

DANKARMULTI — Multi-Mode Standalone Loader

doc/standalone/dankarmulti.md

4.92373.4 KB
Original Source

DANKARMULTI — Multi-Mode Standalone Loader

Author: Daniel Karling (dankarmulti) Frequency: Multi (LF + HF) Hardware: Generic Proxmark3

Back to Standalone Modes Index | Source Code | Development Guide


What

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.

Why

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.

How

  1. Boot: On entering standalone mode, LEDs indicate the currently selected sub-mode.
  2. Cycle: Press the button to cycle through available sub-modes. LEDs change to indicate the new selection.
  3. Execute: Hold the button to launch the selected sub-mode. Once launched, that sub-mode takes full control (LEDs, button, etc.).
  4. Exit: Exiting the sub-mode returns to the DANKARMULTI selector.

Default Bundled Modes

By default, DANKARMULTI includes:

SlotModeDescription
1HF_MATTYRUNMIFARE Classic key check → nested → dump → emulate
2LF_EM4100RSWBEM4100 read/sim/write/brute
3HF_TCPRSTIKEA Rothult / ST25TA password extractor

Modes can be customized by editing the dankarmulti.c source — add or remove #includes and update the mode array.

LED Indicators

LEDMeaning (Selector)
A onlyMode 1 selected
B onlyMode 2 selected
C onlyMode 3 selected
D onlyMode 4 selected (if present)
A+BMode 5 selected (if present)

Once a sub-mode is launched, that sub-mode's own LED scheme takes over.

Button Controls

ActionEffect
Single clickCycle to next sub-mode
Long holdLaunch selected sub-mode

State Machine

mermaid
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

Customising Bundled Modes

Edit armsrc/Standalone/dankarmulti.c:

  1. Add #include for the desired standalone mode header
  2. Add entry to the modes[] array with the mode's RunMod() and ModInfo() functions
  3. Recompile:
bash
make clean
make STANDALONE=DANKARMULTI -j
./pm3-flash-fullimage

Compilation

make clean
make STANDALONE=DANKARMULTI -j
./pm3-flash-fullimage