]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - include/usb_cmd.h
74d494c276ab41ca1d5ce15890985717d4c148f8
   1 //----------------------------------------------------------------------------- 
   2 // Jonathan Westhues, Mar 2006 
   3 // Edits by Gerhard de Koning Gans, Sep 2007 
   5 // This code is licensed to you under the terms of the GNU GPL, version 2 or, 
   6 // at your option, any later version. See the LICENSE.txt file for the text of 
   8 //----------------------------------------------------------------------------- 
   9 // Definitions for all the types of commands that may be sent over USB; our 
  11 //----------------------------------------------------------------------------- 
  16 typedef DWORD 
uint32_t; 
  23 #define PACKED __attribute__((packed)) 
  26 #define USB_CMD_DATA_SIZE 512 
  32     uint8_t  asBytes
[USB_CMD_DATA_SIZE
]; 
  33     uint32_t asDwords
[USB_CMD_DATA_SIZE
/4]; 
  36 // A struct used to send sample-configs over USB 
  39         uint8_t bits_per_sample
; 
  42         int trigger_threshold
; 
  46 #define CMD_DEVICE_INFO                                                   0x0000 
  47 #define CMD_SETUP_WRITE                                                   0x0001 
  48 #define CMD_FINISH_WRITE                                                  0x0003 
  49 #define CMD_HARDWARE_RESET                                                0x0004 
  50 #define CMD_START_FLASH                                                   0x0005 
  51 #define CMD_NACK                                                          0x00fe 
  52 #define CMD_ACK                                                           0x00ff 
  54 // For general mucking around 
  55 #define CMD_DEBUG_PRINT_STRING                                            0x0100 
  56 #define CMD_DEBUG_PRINT_INTEGERS                                          0x0101 
  57 #define CMD_DEBUG_PRINT_BYTES                                             0x0102 
  58 #define CMD_LCD_RESET                                                     0x0103 
  59 #define CMD_LCD                                                           0x0104 
  60 #define CMD_BUFF_CLEAR                                                    0x0105 
  61 #define CMD_READ_MEM                                                      0x0106 
  62 #define CMD_VERSION                                                       0x0107 
  64 // For low-frequency tags 
  65 #define CMD_READ_TI_TYPE                                                  0x0202 
  66 #define CMD_WRITE_TI_TYPE                                                 0x0203 
  67 #define CMD_DOWNLOADED_RAW_BITS_TI_TYPE                                   0x0204 
  68 #define CMD_ACQUIRE_RAW_ADC_SAMPLES_125K                                  0x0205 
  69 #define CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K                         0x0206 
  70 #define CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K                                 0x0207 
  71 #define CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K                               0x0208 
  72 #define CMD_DOWNLOADED_SIM_SAMPLES_125K                                   0x0209 
  73 #define CMD_SIMULATE_TAG_125K                                             0x020A 
  74 #define CMD_HID_DEMOD_FSK                                                 0x020B 
  75 #define CMD_HID_SIM_TAG                                                   0x020C 
  76 #define CMD_SET_LF_DIVISOR                                                0x020D 
  77 #define CMD_LF_SIMULATE_BIDIR                                             0x020E 
  78 #define CMD_SET_ADC_MUX                                                   0x020F 
  79 #define CMD_HID_CLONE_TAG                                                 0x0210 
  80 #define CMD_EM410X_WRITE_TAG                                              0x0211 
  81 #define CMD_INDALA_CLONE_TAG                                              0x0212 
  83 #define CMD_INDALA_CLONE_TAG_L                                            0x0213 
  84 #define CMD_T55XX_READ_BLOCK                                              0x0214 
  85 #define CMD_T55XX_WRITE_BLOCK                                             0x0215 
  86 #define CMD_T55XX_READ_TRACE                                              0x0216 
  87 #define CMD_PCF7931_READ                                                  0x0217 
  88 #define CMD_EM4X_READ_WORD                                                0x0218 
  89 #define CMD_EM4X_WRITE_WORD                                               0x0219 
  90 #define CMD_IO_DEMOD_FSK                                                  0x021A 
  91 #define CMD_IO_CLONE_TAG                                                  0x021B 
  92 #define CMD_EM410X_DEMOD                                                  0x021c 
  93 // Sampling configuration for LF reader/snooper 
  94 #define CMD_SET_LF_SAMPLING_CONFIG                                        0x021d 
  95 #define CMD_FSK_SIM_TAG                                                   0x021E 
  96 #define CMD_ASK_SIM_TAG                                                   0x021F 
  97 #define CMD_PSK_SIM_TAG                                                   0x0220 
  99 /* CMD_SET_ADC_MUX: ext1 is 0 for lopkd, 1 for loraw, 2 for hipkd, 3 for hiraw */ 
 101 // For the 13.56 MHz tags 
 102 #define CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_15693                             0x0300 
 103 #define CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443                             0x0301 
 104 #define CMD_READ_SRI512_TAG                                               0x0303 
 105 #define CMD_READ_SRIX4K_TAG                                               0x0304 
 106 #define CMD_ISO_14443B_COMMAND                                            0x0305 
 107 #define CMD_READER_ISO_15693                                              0x0310 
 108 #define CMD_SIMTAG_ISO_15693                                              0x0311 
 109 #define CMD_RECORD_RAW_ADC_SAMPLES_ISO_15693                              0x0312 
 110 #define CMD_ISO_15693_COMMAND                                             0x0313 
 111 #define CMD_ISO_15693_COMMAND_DONE                                        0x0314 
 112 #define CMD_ISO_15693_FIND_AFI                                            0x0315 
 113 #define CMD_ISO_15693_DEBUG                                               0x0316 
 114 #define CMD_LF_SNOOP_RAW_ADC_SAMPLES                                      0x0317 
 116 // For Hitag2 transponders 
 117 #define CMD_SNOOP_HITAG                                                   0x0370 
 118 #define CMD_SIMULATE_HITAG                                                0x0371 
 119 #define CMD_READER_HITAG                                                  0x0372 
 121 #define CMD_SIMULATE_TAG_HF_LISTEN                                        0x0380 
 122 #define CMD_SIMULATE_TAG_ISO_14443                                        0x0381 
 123 #define CMD_SNOOP_ISO_14443                                               0x0382 
 124 #define CMD_SNOOP_ISO_14443a                                              0x0383 
 125 #define CMD_SIMULATE_TAG_ISO_14443a                                       0x0384 
 126 #define CMD_READER_ISO_14443a                                             0x0385 
 127 #define CMD_SIMULATE_TAG_LEGIC_RF                                         0x0387 
 128 #define CMD_READER_LEGIC_RF                                               0x0388 
 129 #define CMD_WRITER_LEGIC_RF                                               0x0389 
 130 #define CMD_EPA_PACE_COLLECT_NONCE                                        0x038A 
 131 //#define CMD_EPA_                                                          0x038B 
 133 #define CMD_SNOOP_ICLASS                                                  0x0392 
 134 #define CMD_SIMULATE_TAG_ICLASS                                           0x0393 
 135 #define CMD_READER_ICLASS                                                 0x0394 
 136 #define CMD_READER_ICLASS_REPLAY                                                                                  0x0395 
 137 #define CMD_ICLASS_ISO14443A_WRITE                                                                                0x0397 
 138 #define CMD_ICLASS_EML_MEMSET                                             0x0398 
 140 // For measurements of the antenna tuning 
 141 #define CMD_MEASURE_ANTENNA_TUNING                                        0x0400 
 142 #define CMD_MEASURE_ANTENNA_TUNING_HF                                     0x0401 
 143 #define CMD_MEASURED_ANTENNA_TUNING                                       0x0410 
 144 #define CMD_LISTEN_READER_FIELD                                           0x0420 
 146 // For direct FPGA control 
 147 #define CMD_FPGA_MAJOR_MODE_OFF                                           0x0500 
 149 // For mifare commands 
 150 #define CMD_MIFARE_SET_DBGMODE                                            0x0600 
 151 #define CMD_MIFARE_EML_MEMCLR                                             0x0601 
 152 #define CMD_MIFARE_EML_MEMSET                                             0x0602 
 153 #define CMD_MIFARE_EML_MEMGET                                             0x0603 
 154 #define CMD_MIFARE_EML_CARDLOAD                                           0x0604 
 156 // magic chinese card commands 
 157 #define CMD_MIFARE_CSETBLOCK                                              0x0605 
 158 #define CMD_MIFARE_CGETBLOCK                                              0x0606 
 159 #define CMD_MIFARE_CIDENT                                                 0x0607 
 161 #define CMD_SIMULATE_MIFARE_CARD                                          0x0610 
 163 #define CMD_READER_MIFARE                                                 0x0611 
 164 #define CMD_MIFARE_NESTED                                                 0x0612 
 166 #define CMD_MIFARE_READBL                                                 0x0620 
 167 #define CMD_MIFAREU_READBL                                                                        0x0720 
 169 #define CMD_MIFARE_READSC                                                 0x0621 
 170 #define CMD_MIFAREU_READCARD                                                                  0x0721 
 172 #define CMD_MIFARE_WRITEBL                                                0x0622 
 173 #define CMD_MIFAREU_WRITEBL                                                                       0x0722 
 174 #define CMD_MIFAREU_WRITEBL_COMPAT                                                            0x0723 
 176 #define CMD_MIFARE_CHKKEYS                                                0x0623 
 178 #define CMD_MIFARE_SNIFFER                                                0x0630 
 181 #define CMD_MIFAREUC_AUTH1                                                                        0x0724 
 182 #define CMD_MIFAREUC_AUTH2                                                                        0x0725 
 183 #define CMD_MIFAREUC_READCARD                                                                 0x0726 
 184 #define CMD_MIFAREUC_SETPWD                                                                           0x0727 
 185 #define CMD_MIFAREU_SETUID                                                                            0x0728 
 188 #define CMD_MIFARE_DESFIRE_READBL                                         0x0728 
 189 #define CMD_MIFARE_DESFIRE_WRITEBL                                        0x0729 
 190 #define CMD_MIFARE_DESFIRE_AUTH1                                          0x072a 
 191 #define CMD_MIFARE_DESFIRE_AUTH2                                          0x072b 
 192 #define CMD_MIFARE_DES_READER                                             0x072c 
 193 #define CMD_MIFARE_DESFIRE_INFO                                           0x072d 
 194 #define CMD_MIFARE_DESFIRE                                                0x072e 
 196 #define CMD_UNKNOWN                                                       0xFFFF 
 199 //Mifare simulation flags 
 200 #define FLAG_INTERACTIVE 0x01 
 201 #define FLAG_4B_UID_IN_DATA 0x02 
 202 #define FLAG_7B_UID_IN_DATA 0x04 
 203 #define FLAG_NR_AR_ATTACK 0x08 
 206 //Iclass reader flags 
 207 #define FLAG_ICLASS_READER_ONLY_ONCE 0x01 
 208 #define FLAG_ICLASS_READER_CC       0x02 
 209 #define FLAG_ICLASS_READER_CSN          0x04 
 210 #define FLAG_ICLASS_READER_CONF         0x08 
 211 #define FLAG_ICLASS_READER_AA           0x10 
 215 // CMD_DEVICE_INFO response packet has flags in arg[0], flag definitions: 
 216 /* Whether a bootloader that understands the common_area is present */ 
 217 #define DEVICE_INFO_FLAG_BOOTROM_PRESENT                (1<<0) 
 219 /* Whether a osimage that understands the common_area is present */ 
 220 #define DEVICE_INFO_FLAG_OSIMAGE_PRESENT                (1<<1) 
 222 /* Set if the bootloader is currently executing */ 
 223 #define DEVICE_INFO_FLAG_CURRENT_MODE_BOOTROM           (1<<2) 
 225 /* Set if the OS is currently executing */ 
 226 #define DEVICE_INFO_FLAG_CURRENT_MODE_OS                (1<<3) 
 228 /* Set if this device understands the extend start flash command */ 
 229 #define DEVICE_INFO_FLAG_UNDERSTANDS_START_FLASH        (1<<4) 
 231 /* CMD_START_FLASH may have three arguments: start of area to flash, 
 232    end of area to flash, optional magic. 
 233    The bootrom will not allow to overwrite itself unless this magic 
 234    is given as third parameter */ 
 236 #define START_FLASH_MAGIC 0x54494f44 // 'DOIT'