# HG changeset patch # User Mychaela Falconia # Date 1696378805 0 # Node ID 5268246520de0ec5b354a085e28aaf815174adcb # Parent 2855330ab96f73ccfa30a69873063cb8f409be2d simsniff-dec: decode command opcodes diff -r 2855330ab96f -r 5268246520de sw/sniff-dec/command.c --- a/sw/sniff-dec/command.c Tue Oct 03 23:32:43 2023 +0000 +++ b/sw/sniff-dec/command.c Wed Oct 04 00:20:05 2023 +0000 @@ -37,6 +37,84 @@ } static void +decode_cmd_opcode() +{ + char *cmdname; + + switch (cmd_hdr[1]) { + case 0xA4: + cmdname = "SELECT"; + break; + case 0xF2: + cmdname = "STATUS"; + break; + case 0xB0: + cmdname = "READ BINARY"; + break; + case 0xD6: + cmdname = "UPDATE BINARY"; + break; + case 0xB2: + cmdname = "READ RECORD"; + break; + case 0xDC: + cmdname = "UPDATE RECORD"; + break; + case 0xA2: + cmdname = "SEEK"; + break; + case 0x32: + cmdname = "INCREASE"; + break; + case 0x20: + cmdname = "VERIFY PIN"; + break; + case 0x24: + cmdname = "CHANGE PIN"; + break; + case 0x26: + cmdname = "DISABLE PIN"; + break; + case 0x28: + cmdname = "ENABLE PIN"; + break; + case 0x2C: + cmdname = "UNBLOCK PIN"; + break; + case 0x04: + cmdname = "INVALIDATE"; + break; + case 0x44: + cmdname = "REHABILITATE"; + break; + case 0x88: + cmdname = "RUN GSM ALGO"; + break; + case 0xFA: + cmdname = "SLEEP"; + break; + case 0xC0: + cmdname = "GET RESPONSE"; + break; + case 0x10: + cmdname = "TERMINAL PROFILE"; + break; + case 0xC2: + cmdname = "ENVELOPE"; + break; + case 0x12: + cmdname = "FETCH"; + break; + case 0x14: + cmdname = "TERMINAL RESPONSE"; + break; + default: + cmdname = "Unknown!"; + } + printf(" Command: %s\n", cmdname); +} + +static void print_cmd_hdr() { unsigned n; @@ -59,6 +137,7 @@ state = STATE_ERROR; return; } + decode_cmd_opcode(); if (cmd_hdr[4]) data_total = cmd_hdr[4]; else