This commit is contained in:
iceman1001 2021-12-31 11:11:29 +01:00
commit 7fb0856cdb
5 changed files with 110 additions and 9 deletions

View file

@ -1,4 +1,28 @@
# Notes on paths.
# Notes on path
<a id="Top"></a>
# Table of Contents
- [Notes on path](#notes-on-path)
- [Table of Contents](#table-of-contents)
- [Installed elements](#installed-elements)
- [Binaries](#binaries)
- [Firmwares](#firmwares)
- [Traces](#traces)
- [JTAG-related stuff](#jtag-related-stuff)
- [Proxmark3 client files: dictionaries](#proxmark3-client-files-dictionaries)
- [Proxmark3 client files: cmd scripts](#proxmark3-client-files-cmd-scripts)
- [Proxmark3 client files: Lua libraries and scripts](#proxmark3-client-files-lua-libraries-and-scripts)
- [Proxmark3 client files: various resources](#proxmark3-client-files-various-resources)
- [Documentation](#documentation)
- [User files](#user-files)
- [.history / log files](#history--log-files)
- [Proxmark3 client files and traces](#proxmark3-client-files-and-traces)
- [Searching files](#searching-files)
- [TL;DR](#tldr)
- [Gory details](#gory-details)
- [Scripts](#scripts)
- [Proxmark command script (.cmd)](#proxmark-command-script-cmd)
- [Shebangs (on *nix)](#shebangs-on-nix)
With the recent (2019-09-01) changes and creation of `make install` command it is easy to get lost.
@ -6,8 +30,10 @@ With the recent (2019-09-01) changes and creation of `make install` command it
If you install the Proxmark tools with `make install`, they will go under the prefix `/usr/local/` but if you install the tools from your distro, there are chances the path is `/usr` so you'll have to adapt the paths presented here.
# Installed elements
^[Top](#top)
## Binaries
^[Top](#top)
The main Proxmark3 executables / shellscripts will be copied to
@ -29,6 +55,7 @@ Some more executable / scripts will be copied to
## Firmwares
^[Top](#top)
The recovery / firmware files will be copied to
@ -41,6 +68,7 @@ The recovery / firmware files will be copied to
## Traces
^[Top](#top)
Proxmark3 client has a lot of sample trace files for many different low frequency tags. They will be copied to
@ -50,6 +78,7 @@ Proxmark3 client has a lot of sample trace files for many different low frequenc
## JTAG-related stuff
^[Top](#top)
JTAG configurations and helper scripts for OpenOCD will be copied to
@ -57,6 +86,7 @@ JTAG configurations and helper scripts for OpenOCD will be copied to
## Proxmark3 client files: dictionaries
^[Top](#top)
Dictionaries used by the client will be copied to
@ -76,6 +106,7 @@ if key isn't a hex number, the key is ignored.
See [here](#proxmark3-client-files-and-traces) how to add your own dictionaries.
## Proxmark3 client files: cmd scripts
^[Top](#top)
Cmd scripts used by the client will be copied to
@ -86,6 +117,7 @@ Cmd scripts used by the client will be copied to
See [here](#proxmark3-client-files-and-traces) how to add your own cmd scripts.
## Proxmark3 client files: Lua libraries and scripts
^[Top](#top)
Lua libraries and scripts used by the client will be copied to
@ -99,6 +131,7 @@ Lua libraries and scripts used by the client will be copied to
See [here](#proxmark3-client-files-and-traces) how to add your own Lua scripts.
## Proxmark3 client files: various resources
^[Top](#top)
Various resources used by the client will be copied to
@ -111,6 +144,7 @@ It comprises the needed files for commands like hardnested, fido, EMV, iClass.
See [here](#proxmark3-client-files-and-traces) how to add your own resources.
## Documentation
^[Top](#top)
Documentation will be copied to
@ -119,10 +153,12 @@ Documentation will be copied to
```
# User files
^[Top](#top)
The client will make use of a personal directory `~/.proxmark3` (or more precisely `$HOME/.proxmark3`)
## .history / log files
^[Top](#top)
We have now a rolling log file, created new per day. All these logfiles and the history file are now located at
@ -132,6 +168,7 @@ We have now a rolling log file, created new per day. All these logfiles and the
```
## Proxmark3 client files and traces
^[Top](#top)
If you wants to add scripts, dictionaries or other resources, you can use the same structure as the installed directory structure and add your own files there, e.g.
@ -148,10 +185,12 @@ If you add a file with the same name as the file provided with the Proxmark3 ins
See also [Scripts](#scripts) on how to write your own scripts.
# Searching files
^[Top](#top)
With the directory structure explained above, the client applies some heuristics to find its files or the files you specified in command line.
## TL;DR
^[Top](#top)
It adds the expected suffix if you didn't provide it yet, then it looks (by order of precedence):
@ -161,6 +200,7 @@ It adds the expected suffix if you didn't provide it yet, then it looks (by orde
4. in the installed directory structure, so it works when installed
## Gory details
^[Top](#top)
The client is using _searchFile_ (in _client/fileutils.c_) when calling a Proxmark3 command with a filename or when the client needs to find its files.
_searchFile_ takes as argument a relative path *pm3dir*, a file to search and possibly a *suffix*.
@ -177,11 +217,14 @@ When a user provides a filename (including possibly a path), _searchFile_ will s
* Try to find the filename in the *pm3dir* relative to where the client binary is when in the installed configuration (*foo.dic* -> *$(path_to_dir_of_proxmark3_bin)/../share/proxmark3/dictionaries/foo.dic* which resolves to e.g. */usr/share/proxmark3/dictionaries/foo.dic* or */usr/local/share/proxmark3/dictionaries/foo.dic*), so when the client is executed from a repo workdir, filenames are searched in the expected location.
# Scripts
^[Top](#top)
You can provide your own lua or cmd scripts.
Look at existing scripts for ideas how to create your own scripts.
### Proxmark command script (.cmd)
^[Top](#top)
For cmd scripts, the command line scripts, the client can run a text file containing Proxmark3 commands.
A samplefile could be like this.
@ -210,6 +253,7 @@ You can skip the script file extension, it works equally well with.
### Shebangs (on *nix)
^[Top](#top)
You can also use the magic of shebangs to make an executable script, e.g. taking the example above, we can write: