From ae7aa73dd529b84ad75c7a3c75461be1d7c18454 Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Wed, 26 Mar 2014 22:08:55 +0100 Subject: [PATCH] Add option -h to dump complete set of supported commands Usage: ./proxmark3 -h Display both offline & online commands, online commands are flagged. git-svn-id: https://proxmark3.googlecode.com/svn/trunk@850 ef4ab9da-24cd-11de-8aaa-f3a34680c41f --- client/cmdparser.c | 4 +++- client/proxmark3.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/client/cmdparser.c b/client/cmdparser.c index 7ea1bf47..48d044d5 100644 --- a/client/cmdparser.c +++ b/client/cmdparser.c @@ -21,8 +21,10 @@ void CmdsHelp(const command_t Commands[]) int i = 0; while (Commands[i].Name) { - if (!offline || Commands[i].Offline) + if (offline == 0 || Commands[i].Offline) PrintAndLog("%-16s %s", Commands[i].Name, Commands[i].Help); + if (offline == 2 && !Commands[i].Offline) + PrintAndLog("%-14s @ %s", Commands[i].Name, Commands[i].Help); ++i; } } diff --git a/client/proxmark3.c b/client/proxmark3.c index 91bc7b31..e40b4def 100644 --- a/client/proxmark3.c +++ b/client/proxmark3.c @@ -206,15 +206,59 @@ static void *main_loop(void *targ) { return NULL; } +#define DUMPHELP(cmd) \ + do { \ + printf("%s\n", cmd); \ + printf("---------------------------------------------\n"); \ + CommandReceived(cmd); \ + printf("\n"); \ + } while (0) + +static void dumphelp() +{ + offline=2; + printf("\n------------PROXMARK3 HELP DUMP--------------\n"); + printf("Some commands are available only if a Proxmark is actually connected,\n"); + printf("Those commands are flagged with \"@\" in front of their description.\n"); + printf("\n"); + DUMPHELP("help"); + DUMPHELP("data help"); + DUMPHELP("hf help"); + DUMPHELP("hf 14a help"); + DUMPHELP("hf 14b help"); + DUMPHELP("hf 15 help"); + DUMPHELP("hf epa help"); + DUMPHELP("hf legic help"); + DUMPHELP("hf iclass help"); + DUMPHELP("hf mf help"); + DUMPHELP("hw help"); + DUMPHELP("lf help"); + DUMPHELP("lf em4x help"); + DUMPHELP("lf hid help"); + DUMPHELP("lf ti help"); + DUMPHELP("lf hitag help"); + DUMPHELP("lf pcf7931 help"); + DUMPHELP("lf t55xx help"); +} + int main(int argc, char* argv[]) { srand(time(0)); if (argc < 2) { printf("syntax: %s \n\n",argv[0]); printf("\tLinux example:'%s /dev/ttyACM0'\n\n", argv[0]); + printf("help: %s -h\n\n", argv[0]); + printf("\tDump all interactive help at once\n"); return 1; } + if (strcmp(argv[1], "-h") == 0) { + printf("syntax: %s \n\n",argv[0]); + printf("\tLinux example:'%s /dev/ttyACM0'\n\n", argv[0]); + offline = 2; + dumphelp(); + return 0; + } // Make sure to initialize struct main_loop_arg marg = { .usb_present = 0, -- 2.39.5