Does not respond to the RATS instruction unless SAK contains 0x20

This commit is contained in:
Willok
2020-02-03 17:24:23 +08:00
parent 11a8cc57ec
commit a83b6feb38
4 changed files with 7850 additions and 7616 deletions
@@ -605,19 +605,13 @@ uint16_t MifareClassicAppProcess(uint8_t *Buffer, uint16_t BitCount) {
if (ISO14443AWakeUp(Buffer, &BitCount, CardATQAValue, FromHalt)) {
State = STATE_READY1;
return BitCount;
} else if (Buffer[0] == CMD_CHINESE_UNLOCK && bUidMode){
State = STATE_CHINESE_IDLE;
Buffer[0] = ACK_VALUE;
return ACK_NAK_FRAME_SIZE;
}
//#ifdef SUPPORT_MF_CLASSIC_MAGIC_MODE
else if (Buffer[0] == CMD_CHINESE_UNLOCK) {
if (bUidMode) {
State = STATE_CHINESE_IDLE;
Buffer[0] = ACK_VALUE;
return ACK_NAK_FRAME_SIZE;
}
}
//#endif
break;
//#ifdef SUPPORT_MF_CLASSIC_MAGIC_MODE
case STATE_CHINESE_IDLE:
/* Support special china commands that dont require authentication. */
if (Buffer[0] == CMD_CHINESE_UNLOCK_RW) {
@@ -693,7 +687,6 @@ uint16_t MifareClassicAppProcess(uint8_t *Buffer, uint16_t BitCount) {
State = STATE_CHINESE_IDLE;
return ACK_NAK_FRAME_SIZE;
//#endif
case STATE_READY1:
if (ISO14443AWakeUp(Buffer, &BitCount, CardATQAValue, FromHalt)) {
@@ -853,7 +846,7 @@ uint16_t MifareClassicAppProcess(uint8_t *Buffer, uint16_t BitCount) {
LogEntry(LOG_ERR_APP_NOT_AUTHED, NULL, 0);
return ACK_NAK_FRAME_SIZE;
} else if (Buffer[0] == 0xE0) {
} else if ((Buffer[0] == 0xE0) && (CardSAKValue & 0x20)) {
if (ISO14443ACheckCRCA(Buffer, CMD_READ_FRAME_SIZE)) {
Buffer[0] = 0x10;
Buffer[1] = 0x78;
@@ -1,8 +1,9 @@
:100000000000912F0606080800000401320090014C
:1000100006060808000004013200900106060808E0
:1000200000000401320090010606080800000401E7
:100030003200900106060808000004013200900119
:1000400006060808000004013200900106060808B0
:1000500000000401320090010606080800000401B7
:0400600032009001D9
:1000000000000000F2330606070700060104320074
:100010009001000606070700060104320090010067
:1000200006060707000601043200900100060607D5
:1000300007000601043200900100060607070006CB
:100040000104320090010006060707000601043291
:100050000090010006060707000601043200900127
:10006000000606070700060104320090010006069C
:0C0070000707000D0104320090010000A1
:00000001FF
File diff suppressed because it is too large Load Diff
+44 -5
View File
@@ -1,15 +1,38 @@
Chameleon-Mini
==============
This is the NOT official repository of ChameleonMini, a freely programmable, portable tool for NFC security analysis that can emulate and clone contactless cards, read RFID tags and sniff/log RF data. Thanks to over 1700 backers from our [Kickstarter project](https://www.kickstarter.com/projects/1980078555/chameleonmini-a-versatile-nfc-card-emulator-and-mo), the current Revision G has been realized by Kasper & Oswald GmbH.
This is NOT the official repository of ChameleonMini, a freely programmable, portable tool for NFC security analysis that can emulate and clone contactless cards, read RFID tags and sniff/log RF data. Thanks to over 1700 backers from our [Kickstarter project](https://www.kickstarter.com/projects/1980078555/chameleonmini-a-versatile-nfc-card-emulator-and-mo), the current Revision G has been realized by Kasper & Oswald GmbH.
Our Project is based on the open-source project by ChameleonMini RevG by Kasper & Oswald [Webshop](https://shop.kasper.it/).
Our ChameleonMini / ChameleonTiny by ProxGrind is available on Indiegogo now.
[Here](https://www.indiegogo.com/campaigns/chameleonmini-rev-g-chameleontiny-by-proxgrind/)
[Done](https://www.indiegogo.com/campaigns/chameleonmini-rev-g-chameleontiny-by-proxgrind/)
First Steps
Our Asia & Oceania Reseller
[Here](https://sneaktechnology.com/
Our Europe Reseller
[Here](https://lab401.com/)
Our US Reseller
[Here](https://hackerwarehouse.com/)
Most information can be found on [here](http://chameleontiny.com/)
Our APP can be found here: [Here](https://play.google.com/store/apps/details?id=com.proxgrind.chameleon)
Button Usage
-----------
-
When the power is off, press any button once to turn on the Bluetooth power, and at the same time, display the current power with a white LED.
In the Bluetooth 'ON' state, click any button to turn off the Bluetooth power, the power LED goes out, and the system sleeps.
Bluetooth will sleep automatically 15 seconds after no operation.
Press any button for a long time, you can quickly check the power, and immediately sleep when you release.
Click the button three times to turn on the power of chameleon. Sleep automatically after 5 seconds without operation.
When shutting down, press and hold the button next to USB and then connect USB. You can enter DFU mode.
Charging: Any time you connect USB, it will automatically start charging. Stop automatically after filling. The white LED indicates the power level.
Detect memory full: If the memory is full during dense flow detection, multiple red LEDs will be abnormally lit.
Supported Cards and Codecs
--------------------------
@@ -22,7 +45,23 @@ Questions
External Contributions
----------------------
-
Iceman
Philippe Teuwen
Willok
DXL
ProxGrind aka Olaf
Parameter
------------------------
Battery Type: LIR2032h rechargeable lithium ion battery
Charging Time: 2 hours @ 0-100%
Charging Current: 40mA
Standby Current: 38ma
Sleep Current: 4uA
Card Reading Current: 65mA
Battery Capacity: 70mah
Usage Time: Use the tag 3 times a day, power on for 5 seconds each time, can use up to one year.
Port Type: Micro USB (ChameleonMini) / Type-C (ChameleonTiny)
Repository Structure
--------------------