mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 13:23:51 -07:00
when changing to 50 loops on device side, the felica reader code on client side timedout and it wasnt handled good enough so the return code was PM3_SUCCESS giving a false positive. Increase timeout, decrease loops to 25, and better loop handling of return value
This commit is contained in:
parent
3502da17df
commit
bbbe985111
3 changed files with 9 additions and 6 deletions
|
@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file.
|
||||||
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
||||||
|
|
||||||
## [unreleased][unreleased]
|
## [unreleased][unreleased]
|
||||||
|
- Fixed `hf search` - where felica reader now doesnt timeout and give wrong response (@iceman1001)
|
||||||
- Fixed overflow in deps/jansson library (@iceman1001)
|
- Fixed overflow in deps/jansson library (@iceman1001)
|
||||||
- Added `lf hitag crack2` - WIP. Trying to add the second attack vector against Hitag2 (@iceman1001)
|
- Added `lf hitag crack2` - WIP. Trying to add the second attack vector against Hitag2 (@iceman1001)
|
||||||
- Changed `hf 14b reader --plot` - made the anticollision signal trace download optional (@iceman1001)
|
- Changed `hf 14b reader --plot` - made the anticollision signal trace download optional (@iceman1001)
|
||||||
|
|
|
@ -239,7 +239,7 @@ static uint8_t felica_select_card(felica_card_select_t *card) {
|
||||||
|
|
||||||
|
|
||||||
// We try 10 times, or if answer was received.
|
// We try 10 times, or if answer was received.
|
||||||
int len = 50;
|
int len = 25;
|
||||||
do {
|
do {
|
||||||
// end-of-reception response packet data, wait approx. 501μs
|
// end-of-reception response packet data, wait approx. 501μs
|
||||||
// end-of-transmission command packet data, wait approx. 197μs
|
// end-of-transmission command packet data, wait approx. 197μs
|
||||||
|
@ -547,13 +547,11 @@ void felica_sendraw(const PacketCommandNG *c) {
|
||||||
const uint8_t *cmd = c->data.asBytes;
|
const uint8_t *cmd = c->data.asBytes;
|
||||||
uint32_t arg0;
|
uint32_t arg0;
|
||||||
|
|
||||||
felica_card_select_t card;
|
|
||||||
|
|
||||||
if ((param & FELICA_CONNECT) == FELICA_CONNECT) {
|
if ((param & FELICA_CONNECT) == FELICA_CONNECT) {
|
||||||
clear_trace();
|
clear_trace();
|
||||||
}
|
}
|
||||||
|
|
||||||
set_tracing(true);
|
set_tracing(true);
|
||||||
|
|
||||||
iso18092_setup(FPGA_HF_ISO18092_FLAG_READER | FPGA_HF_ISO18092_FLAG_NOMOD);
|
iso18092_setup(FPGA_HF_ISO18092_FLAG_READER | FPGA_HF_ISO18092_FLAG_NOMOD);
|
||||||
|
|
||||||
if ((param & FELICA_CONNECT) == FELICA_CONNECT) {
|
if ((param & FELICA_CONNECT) == FELICA_CONNECT) {
|
||||||
|
@ -562,6 +560,7 @@ void felica_sendraw(const PacketCommandNG *c) {
|
||||||
// if failed selecting, turn off antenna and quite.
|
// if failed selecting, turn off antenna and quite.
|
||||||
if ((param & FELICA_NO_SELECT) != FELICA_NO_SELECT) {
|
if ((param & FELICA_NO_SELECT) != FELICA_NO_SELECT) {
|
||||||
|
|
||||||
|
felica_card_select_t card;
|
||||||
arg0 = felica_select_card(&card);
|
arg0 = felica_select_card(&card);
|
||||||
reply_mix(CMD_ACK, arg0, sizeof(card.uid), 0, &card, sizeof(felica_card_select_t));
|
reply_mix(CMD_ACK, arg0, sizeof(card.uid), 0, &card, sizeof(felica_card_select_t));
|
||||||
if (arg0) {
|
if (arg0) {
|
||||||
|
|
|
@ -312,13 +312,13 @@ static int CmdHFFelicaList(const char *Cmd) {
|
||||||
|
|
||||||
int read_felica_uid(bool loop, bool verbose) {
|
int read_felica_uid(bool loop, bool verbose) {
|
||||||
|
|
||||||
int res = PM3_SUCCESS;
|
int res = PM3_ETIMEOUT;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandMIX(CMD_HF_FELICA_COMMAND, FELICA_CONNECT, 0, 0, NULL, 0);
|
SendCommandMIX(CMD_HF_FELICA_COMMAND, FELICA_CONNECT, 0, 0, NULL, 0);
|
||||||
PacketResponseNG resp;
|
PacketResponseNG resp;
|
||||||
if (WaitForResponseTimeout(CMD_ACK, &resp, 2000)) {
|
if (WaitForResponseTimeout(CMD_ACK, &resp, 2500)) {
|
||||||
|
|
||||||
uint8_t status = resp.oldarg[0] & 0xFF;
|
uint8_t status = resp.oldarg[0] & 0xFF;
|
||||||
|
|
||||||
|
@ -342,7 +342,10 @@ int read_felica_uid(bool loop, bool verbose) {
|
||||||
}
|
}
|
||||||
PrintAndLogEx(SUCCESS, "IDm: " _GREEN_("%s"), sprint_hex_inrow(card.IDm, sizeof(card.IDm)));
|
PrintAndLogEx(SUCCESS, "IDm: " _GREEN_("%s"), sprint_hex_inrow(card.IDm, sizeof(card.IDm)));
|
||||||
set_last_known_card(card);
|
set_last_known_card(card);
|
||||||
|
|
||||||
|
res = PM3_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (loop && kbd_enter_pressed() == false);
|
} while (loop && kbd_enter_pressed() == false);
|
||||||
|
|
||||||
DropField();
|
DropField();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue