-#define CMD_MIFARE_SET_DBGMODE 0x0600
-#define CMD_MIFARE_EML_MEMCLR 0x0601
-#define CMD_MIFARE_EML_MEMSET 0x0602
-#define CMD_MIFARE_EML_MEMGET 0x0603
-#define CMD_MIFARE_EML_CARDLOAD 0x0604
-#define CMD_MIFARE_EML_CSETBLOCK 0x0605
-
-#define CMD_SIMULATE_MIFARE_CARD 0x0610
-
-#define CMD_READER_MIFARE 0x0611
-#define CMD_MIFARE_NESTED 0x0612
-
-#define CMD_MIFARE_READBL 0x0620
-#define CMD_MIFARE_READSC 0x0621
-#define CMD_MIFARE_WRITEBL 0x0622
-#define CMD_MIFARE_CHKKEYS 0x0623
-
-#define CMD_UNKNOWN 0xFFFF
+#define CMD_MIFARE_SET_DBGMODE 0x0600
+#define CMD_MIFARE_EML_MEMCLR 0x0601
+#define CMD_MIFARE_EML_MEMSET 0x0602
+#define CMD_MIFARE_EML_MEMGET 0x0603
+#define CMD_MIFARE_EML_CARDLOAD 0x0604
+
+// magic chinese card commands
+#define CMD_MIFARE_CSETBLOCK 0x0605
+#define CMD_MIFARE_CGETBLOCK 0x0606
+#define CMD_MIFARE_CIDENT 0x0607
+
+#define CMD_SIMULATE_MIFARE_CARD 0x0610
+
+#define CMD_READER_MIFARE 0x0611
+#define CMD_MIFARE_NESTED 0x0612
+
+#define CMD_MIFARE_READBL 0x0620
+#define CMD_MIFAREU_READBL 0x0720
+#define CMD_MIFARE_READSC 0x0621
+#define CMD_MIFAREU_READCARD 0x0721
+#define CMD_MIFARE_WRITEBL 0x0622
+#define CMD_MIFAREU_WRITEBL 0x0722
+#define CMD_MIFAREU_WRITEBL_COMPAT 0x0723
+
+#define CMD_MIFARE_CHKKEYS 0x0623
+
+#define CMD_MIFARE_SNIFFER 0x0630
+//ultralightC
+#define CMD_MIFAREUC_AUTH1 0x0724
+#define CMD_MIFAREUC_AUTH2 0x0725
+#define CMD_MIFAREUC_READCARD 0x0726
+
+// mifare desfire
+#define CMD_MIFARE_DESFIRE_READBL 0x0728
+#define CMD_MIFARE_DESFIRE_WRITEBL 0x0729
+#define CMD_MIFARE_DESFIRE_AUTH1 0x072a
+#define CMD_MIFARE_DESFIRE_AUTH2 0x072b
+#define CMD_MIFARE_DES_READER 0x072c
+#define CMD_MIFARE_DESFIRE_INFO 0x072d
+#define CMD_MIFARE_DESFIRE 0x072e
+
+#define CMD_UNKNOWN 0xFFFF
+
+
+//Mifare simulation flags
+#define FLAG_INTERACTIVE 0x01
+#define FLAG_4B_UID_IN_DATA 0x02
+#define FLAG_7B_UID_IN_DATA 0x04
+#define FLAG_NR_AR_ATTACK 0x08
+
+
+//Iclass reader flags
+#define FLAG_ICLASS_READER_ONLY_ONCE 0x01
+#define FLAG_ICLASS_READER_GET_CC 0x02