textual and some layouts

This commit is contained in:
iceman1001 2024-03-27 09:16:37 +01:00
commit cdc46d5d2b
5 changed files with 43 additions and 27 deletions

View file

@ -888,10 +888,10 @@ int CmdHF14ASim(const char *Cmd) {
int CmdHF14ASniff(const char *Cmd) {
CLIParserContext *ctx;
CLIParserInit(&ctx, "hf 14a sniff",
"Collect data from the field and save into command buffer.\n"
"Buffer accessible from command `hf 14a list`\n",
" hf 14a sniff -c -r");
"Sniff the communication between Hitag reader and tag.\n"
"Use `hf 14a list` to view collected data.",
" hf 14a sniff -c -r"
);
void *argtable[] = {
arg_param_begin,
arg_lit0("c", "card", "triggered by first data from card"),
@ -918,10 +918,13 @@ int CmdHF14ASniff(const char *Cmd) {
SendCommandNG(CMD_HF_ISO14443A_SNIFF, (uint8_t *)&param, sizeof(uint8_t));
PrintAndLogEx(INFO, "Press " _GREEN_("pm3 button") " to abort sniffing");
if (interactive) {
PacketResponseNG resp;
WaitForResponse(CMD_HF_ISO14443A_SNIFF, &resp);
PrintAndLogEx(INFO, "Done!");
PrintAndLogEx(HINT, "Try `" _YELLOW_("hf 14a list")"` to view captured tracelog");
PrintAndLogEx(HINT, "Try `" _YELLOW_("trace save -h") "` to save tracelog for later analysing");
}
return PM3_SUCCESS;
}

View file

@ -868,7 +868,8 @@ static int CmdHF14BSniff(const char *Cmd) {
CLIParserContext *ctx;
CLIParserInit(&ctx, "hf 14b sniff",
"Sniff the communication reader and tag",
"Sniff the communication between reader and tag.\n"
"Use `hf 14b list` to view collected data.",
"hf 14b sniff"
);
@ -879,12 +880,12 @@ static int CmdHF14BSniff(const char *Cmd) {
CLIExecWithReturn(ctx, Cmd, argtable, true);
CLIParserFree(ctx);
PrintAndLogEx(INFO, "Press " _GREEN_("pm3 button") " to abort sniffing");
PacketResponseNG resp;
clearCommandBuffer();
SendCommandNG(CMD_HF_ISO14443B_SNIFF, NULL, 0);
WaitForResponse(CMD_HF_ISO14443B_SNIFF, &resp);
PrintAndLogEx(HINT, "Try `" _YELLOW_("hf 14b list") "` to view captured tracelog");
PrintAndLogEx(HINT, "Try `" _YELLOW_("trace save -h") "` to save tracelog for later analysing");
return PM3_SUCCESS;

View file

@ -238,8 +238,8 @@ static void print_hitag2_configuration(uint32_t uid, uint8_t config) {
PrintAndLogEx(NORMAL, "");
PrintAndLogEx(INFO, "--- " _CYAN_("Tag Information") " ---------------------------");
PrintAndLogEx(SUCCESS, "UID.... " _GREEN_("%08X"), uid);
PrintAndLogEx(SUCCESS, "TYPE... " _GREEN_("%s"), getHitagTypeStr(uid));
PrintAndLogEx(SUCCESS, "UID...... " _GREEN_("%08X"), uid);
PrintAndLogEx(SUCCESS, "TYPE..... " _GREEN_("%s"), getHitagTypeStr(uid));
char msg[100];
memset(msg, 0, sizeof(msg));
@ -249,11 +249,9 @@ static void print_hitag2_configuration(uint32_t uid, uint8_t config) {
const char *bs = sprint_bytebits_bin(bits, 8);
//configuration byte
PrintAndLogEx(SUCCESS, "");
PrintAndLogEx(SUCCESS, "Config byte... 0x%02X", config);
// PrintAndLogEx(SUCCESS, "");
PrintAndLogEx(SUCCESS, "Config... " _YELLOW_("0x%02X"), config);
PrintAndLogEx(SUCCESS, " %s", bs);
PrintAndLogEx(SUCCESS, " %s", sprint_breakdown_bin(C_NONE, bs, 8, 0, 4, "RFU"));
if (config & 0x8) {
@ -285,7 +283,6 @@ static void print_hitag2_configuration(uint32_t uid, uint8_t config) {
} else {
PrintAndLogEx(SUCCESS, " %s", sprint_breakdown_bin(C_NONE, bs, 8, 7, 1, "Manchester"));
}
}
const char *annotation[] = {
@ -297,9 +294,9 @@ const char *annotation[] = {
static void print_hitag2_blocks(uint8_t *d, uint16_t n) {
PrintAndLogEx(INFO, "");
PrintAndLogEx(INFO, "-----------------------------------------------");
PrintAndLogEx(INFO, "block# | data | ascii | lck | Info");
PrintAndLogEx(INFO, "---------+-------------+-------+-----+---------");
PrintAndLogEx(INFO, "----------------------------------------------");
PrintAndLogEx(INFO, " # | data | ascii | lck | Info");
PrintAndLogEx(INFO, "--------+-------------+-------+-----+---------");
uint8_t config = d[HITAG2_CONFIG_OFFSET];
uint8_t blocks = (n / HITAG_BLOCK_SIZE);
@ -360,7 +357,7 @@ static void print_hitag2_blocks(uint8_t *d, uint16_t n) {
break;
}
PrintAndLogEx(INFO, "%3d/0x%02X | %s| %s | %s | %s"
PrintAndLogEx(INFO, "%2d/0x%02X | %s| %s | %s | %s"
, i
, i
, sprint_hex(d + (i * HITAG_BLOCK_SIZE), HITAG_BLOCK_SIZE)
@ -724,8 +721,13 @@ static int CmdLFHitagReader(const char *Cmd) {
uint8_t *data = resp.data.asBytes;
uint32_t uid = bytes_to_num(data, HITAG_UID_SIZE);
print_hitag2_configuration(uid, data[HITAG_BLOCK_SIZE * 3]);
print_hex_break(data, HITAG2_MAX_BYTE_SIZE, HITAG_BLOCK_SIZE);
print_hitag2_paxton(data);
if (use_ht2) {
print_hitag2_blocks(data, HITAG2_MAX_BYTE_SIZE);
print_hitag2_paxton(data);
} else {
print_hex_break(data, HITAG2_MAX_BYTE_SIZE, HITAG_BLOCK_SIZE);
}
return PM3_SUCCESS;
}
@ -1131,9 +1133,13 @@ static int CmdLFHitag2Dump(const char *Cmd) {
// block3, 1 byte
uint32_t uid = bytes_to_num(data, HITAG_UID_SIZE);
print_hitag2_configuration(uid, data[HITAG_BLOCK_SIZE * 3]);
print_hitag2_blocks(data, HITAG2_MAX_BYTE_SIZE);
print_hitag2_paxton(data);
if (use_ht2) {
print_hitag2_configuration(uid, data[HITAG_BLOCK_SIZE * 3]);
print_hitag2_blocks(data, HITAG2_MAX_BYTE_SIZE);
print_hitag2_paxton(data);
} else {
PrintAndLogEx(INFO, "No memory printing available");
}
if (nosave) {
PrintAndLogEx(NORMAL, "");
@ -1360,9 +1366,9 @@ static int CmdLFHitagSim(const char *Cmd) {
static int CmdLFHitagSniff(const char *Cmd) {
CLIParserContext *ctx;
CLIParserInit(&ctx, "lf hitag sniff",
"Sniff traffic between Hitag reader and tag.\n"
"Use " _YELLOW_("`lf hitag list`")" to view collected data.",
"lf hitag sniff"
"Sniff the communication between reader and tag.\n"
"Use `lf hitag list` to view collected data.",
" lf hitag sniff"
);
void *argtable[] = {
@ -1372,9 +1378,15 @@ static int CmdLFHitagSniff(const char *Cmd) {
CLIExecWithReturn(ctx, Cmd, argtable, true);
CLIParserFree(ctx);
PrintAndLogEx(INFO, "Press " _GREEN_("pm3 button") " to abort sniffing");
PacketResponseNG resp;
clearCommandBuffer();
SendCommandNG(CMD_LF_HITAG_SNIFF, NULL, 0);
PrintAndLogEx(HINT, "HINT: Try " _YELLOW_("`lf hitag list`")" to view collected data");
WaitForResponse(CMD_LF_HITAG_SNIFF, &resp);
PrintAndLogEx(INFO, "Done!");
PrintAndLogEx(HINT, "Try `" _YELLOW_("lf hitag list")"` to view captured tracelog");
PrintAndLogEx(HINT, "Try `" _YELLOW_("trace save -h") "` to save tracelog for later analysing");
return PM3_SUCCESS;
}