mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-02-25 16:13:58 +08:00
Minor changes, it may actually work now, need to test with a credentialed reader
This commit is contained in:
parent
94ad01bfba
commit
fa541aca96
1 changed files with 5 additions and 24 deletions
|
@ -1092,10 +1092,11 @@ int doIClassSimulation(uint8_t csn[], int breakAfterMacReceived)
|
||||||
|
|
||||||
|
|
||||||
// Start from off (no field generated)
|
// Start from off (no field generated)
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
//FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
||||||
SpinDelay(200);
|
//SpinDelay(200);
|
||||||
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_ISO14443A | FPGA_HF_ISO14443A_TAGSIM_LISTEN);
|
||||||
|
SpinDelay(100);
|
||||||
|
StartCountSspClk();
|
||||||
// We need to listen to the high-frequency, peak-detected path.
|
// We need to listen to the high-frequency, peak-detected path.
|
||||||
SetAdcMuxFor(GPIO_MUXSEL_HIPKD);
|
SetAdcMuxFor(GPIO_MUXSEL_HIPKD);
|
||||||
FpgaSetupSsc();
|
FpgaSetupSsc();
|
||||||
|
@ -1107,10 +1108,8 @@ int doIClassSimulation(uint8_t csn[], int breakAfterMacReceived)
|
||||||
uint32_t r2t_time =0;
|
uint32_t r2t_time =0;
|
||||||
|
|
||||||
LED_A_ON();
|
LED_A_ON();
|
||||||
bool displayDebug = true;
|
|
||||||
bool buttonPressed = false;
|
bool buttonPressed = false;
|
||||||
while(!exitLoop) {
|
while(!exitLoop) {
|
||||||
displayDebug = true;
|
|
||||||
|
|
||||||
LED_B_OFF();
|
LED_B_OFF();
|
||||||
//Signal tracer
|
//Signal tracer
|
||||||
|
@ -1131,13 +1130,11 @@ int doIClassSimulation(uint8_t csn[], int breakAfterMacReceived)
|
||||||
resp = resp1; respLen = resp1Len; //order = 1;
|
resp = resp1; respLen = resp1Len; //order = 1;
|
||||||
respdata = &sof;
|
respdata = &sof;
|
||||||
respsize = sizeof(sof);
|
respsize = sizeof(sof);
|
||||||
displayDebug = false;
|
|
||||||
} else if(receivedCmd[0] == 0x0c) {
|
} else if(receivedCmd[0] == 0x0c) {
|
||||||
// Reader asks for anticollission CSN
|
// Reader asks for anticollission CSN
|
||||||
resp = resp2; respLen = resp2Len; //order = 2;
|
resp = resp2; respLen = resp2Len; //order = 2;
|
||||||
respdata = response2;
|
respdata = response2;
|
||||||
respsize = sizeof(response2);
|
respsize = sizeof(response2);
|
||||||
//displayDebug = false;
|
|
||||||
//DbpString("Reader requests anticollission CSN:");
|
//DbpString("Reader requests anticollission CSN:");
|
||||||
} else if(receivedCmd[0] == 0x81) {
|
} else if(receivedCmd[0] == 0x81) {
|
||||||
// Reader selects anticollission CSN.
|
// Reader selects anticollission CSN.
|
||||||
|
@ -1199,29 +1196,13 @@ int doIClassSimulation(uint8_t csn[], int breakAfterMacReceived)
|
||||||
if(respLen > 0) {
|
if(respLen > 0) {
|
||||||
SendIClassAnswer(resp, respLen, 21);
|
SendIClassAnswer(resp, respLen, 21);
|
||||||
t2r_time = GetCountSspClk();
|
t2r_time = GetCountSspClk();
|
||||||
|
|
||||||
// }
|
|
||||||
if(displayDebug) Dbprintf("R2T:(len=%d): %x %x %x %x %x %x %x %x %x\nT2R: (total/data =%d/%d): %x %x %x %x %x %x %x %x %x",
|
|
||||||
len,
|
|
||||||
receivedCmd[0], receivedCmd[1], receivedCmd[2],
|
|
||||||
receivedCmd[3], receivedCmd[4], receivedCmd[5],
|
|
||||||
receivedCmd[6], receivedCmd[7], receivedCmd[8],
|
|
||||||
respLen,respsize,
|
|
||||||
resp[0], resp[1], resp[2],
|
|
||||||
resp[3], resp[4], resp[5],
|
|
||||||
resp[6], resp[7], resp[8]);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tracing) {
|
if (tracing) {
|
||||||
//LogTrace(receivedCmd,len, rsamples, Uart.parityBits, TRUE);
|
|
||||||
|
|
||||||
LogTrace(receivedCmd,len, (r2t_time-time_0)<< 4, Uart.parityBits,TRUE);
|
LogTrace(receivedCmd,len, (r2t_time-time_0)<< 4, Uart.parityBits,TRUE);
|
||||||
LogTrace(NULL,0, (r2t_time-time_0) << 4, 0,TRUE);
|
LogTrace(NULL,0, (r2t_time-time_0) << 4, 0,TRUE);
|
||||||
|
|
||||||
if (respdata != NULL) {
|
if (respdata != NULL) {
|
||||||
//LogTrace(respdata,respsize, rsamples, SwapBits(GetParity(respdata,respsize),respsize), FALSE);
|
|
||||||
//if(!LogTrace(resp,respLen, rsamples,SwapBits(GetParity(respdata,respsize),respsize),FALSE))
|
|
||||||
LogTrace(respdata,respsize, (t2r_time-time_0) << 4,SwapBits(GetParity(respdata,respsize),respsize),FALSE);
|
LogTrace(respdata,respsize, (t2r_time-time_0) << 4,SwapBits(GetParity(respdata,respsize),respsize),FALSE);
|
||||||
LogTrace(NULL,0, (t2r_time-time_0) << 4,0,FALSE);
|
LogTrace(NULL,0, (t2r_time-time_0) << 4,0,FALSE);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue