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.
- share (install paths)
- $HOME/.proxmark3 (user home directory
- ./ (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