proxmark3/doc/path_notes.md
2019-09-04 11:03:58 +02:00

3.4 KiB

Notes on paths.

With the recent (2019-09-01) changes and creation of make install command it is still easy to get lost.

We are adapting the client to use searchFile when creating or calling a Proxmark3 command with a filename. Here is where it tries to find the file and in which precedense order it takes.

/usr/share/proxmark3
/usr/local/share/proxmark3

binary paths

This is where the Proxmark3 executable / shellscripts will be copied to.

/usr/share/proxmark3/bin
/usr/local/share/proxmark3/bin

This is where the tools executable / scripts will be copied to

/usr/share/proxmark3/tools
/usr/local/share/proxmark3/tools

executables: mfkey32, mfkey32v2, mfkey64, nonce2key,
scripts: pm3_eml2lower.sh, pm3_eml2upper.sh, pm3_mfdread.py, pm3_mfd2eml.py, pm3_eml2mfd.py, findbits.py, rfidtest.pl, xorcheck.py

JTAG stuff

This is where JTAG configurations will be copied to

/usr/share/proxmark3/jtag_openocd
/usr/local/share/proxmark3/tools/jtag_openocd

Traces

Proxmark3 client has a lot of sample trace files for many different low frequency tags. They will be copied to

/usr/share/proxmark3/traces
/usr/local/share/proxmark3/traces

Firmware paths

This is where the recovery / firmware files will be copied to. bootrom.elf, fullimage.elf, proxmark3_recovery.bin (used for JTAG), sim011.bin, sim011.sha512.txt

/usr/share/proxmark3/firmware
/usr/local/share/proxmark3/firmware

User given paths

~/.proxmark3/
./

Proxmark3 client essential files

/resources
/dictionaries
/lualibs
/luascripts
/cmdscripts

seaching for a file

First instance where a file is found will be used in the client.

  1. share (install paths)
  2. $HOME/.proxmark3 (user home directory
  3. ./ (current working directory)

.history / log files

We have now a rolling log file, created new per day. All those logfiles and the .history file is found

~/.proxmar3/history.txt
~/.proxmar3/log_%Y%m%d.txt

What is where?

/resources The needed files for commands like hardnested, fido, EMV, iClass.

/dictionaries Here you find the default dictionaries or your own used for commands like hf mf chk, hf mf fchk, lf t55xx chk A dictionary file is a text based file with one key per line in hexdecimal form. The length of the key is decided by the Proxmark3 client for the different commands. All chars afterwards on line is ignored. if key isn't a hex number, the key is igonored.

  • t55xx, Mifare Ultralight/NTAG - uses 4 hexbytes (11223344)
  • Mifare classic uses 6 hexbytes (112233445566)
  • iClass uses 8 hexbytes (1122334455667788)

/luascripts Here you find existing lua scripts available, or where you put your own custom lua scripts. Look at existing scripts for ideas how to create your own scripts.

/lualibs Here is the supporting lua libraries used for lua scripts. basically reused functions in a lua file like converting string to hex etc.

/cmdscripts Here you find the proxmark3 client command line scripts. The client can run a text file containing Proxmark3 commands.

a samplefile could be like this.

$> cat myscript.cmd

rem running some HF-based info commands
hf 14a info
hf mfu info
rem done

You call it with: $> pm3 -c myscript.cmd

The client will execute eachone of the commands in order and then exit. There are also a possibility to remain in the client afterward with the -i parameter pm3 -c myscript.cmd -i