mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-07-10 07:22:39 -07:00
small text adjustments plus...
small improvement to fsk clock detect + fixed a bug where it would default to rf/16 when it couldn't find a valid one...
This commit is contained in:
parent
34ff898553
commit
33a1fe9636
3 changed files with 16 additions and 10 deletions
|
@ -1626,9 +1626,9 @@ void EM4xReadWord(uint8_t Address, uint32_t Pwd, uint8_t PwdMode) {
|
||||||
fwd_bit_count += Prepare_Addr( Address );
|
fwd_bit_count += Prepare_Addr( Address );
|
||||||
|
|
||||||
SendForward(fwd_bit_count);
|
SendForward(fwd_bit_count);
|
||||||
SpinDelayUs(700);
|
SpinDelayUs(400);
|
||||||
// Now do the acquisition
|
// Now do the acquisition
|
||||||
DoPartialAcquisition(20, true, 5500);
|
DoPartialAcquisition(20, true, 6000);
|
||||||
|
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
|
||||||
LED_A_OFF();
|
LED_A_OFF();
|
||||||
|
@ -1660,7 +1660,7 @@ void EM4xWriteWord(uint32_t flag, uint32_t Data, uint32_t Pwd) {
|
||||||
|
|
||||||
SpinDelayUs(6500);
|
SpinDelayUs(6500);
|
||||||
//Capture response if one exists
|
//Capture response if one exists
|
||||||
DoPartialAcquisition(20, true, 5500);
|
DoPartialAcquisition(20, true, 6000);
|
||||||
|
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
|
||||||
LED_A_OFF();
|
LED_A_OFF();
|
||||||
|
|
|
@ -675,7 +675,7 @@ int EM4x05ReadWord(uint8_t addr, uint32_t pwd, bool usePwd) {
|
||||||
uint32_t wordData = 0;
|
uint32_t wordData = 0;
|
||||||
int success = EM4x05ReadWord_ext(addr, pwd, usePwd, &wordData);
|
int success = EM4x05ReadWord_ext(addr, pwd, usePwd, &wordData);
|
||||||
if (success == 1)
|
if (success == 1)
|
||||||
PrintAndLog(" Got Address %02d | %08X",addr,wordData);
|
PrintAndLog("%s Address %02d | %08X", (addr>13) ? "Lock":" Got",addr,wordData);
|
||||||
else
|
else
|
||||||
PrintAndLog("Read Address %02d | failed",addr);
|
PrintAndLog("Read Address %02d | failed",addr);
|
||||||
|
|
||||||
|
@ -859,11 +859,11 @@ void printEM4x05config(uint32_t wordData) {
|
||||||
}
|
}
|
||||||
PrintAndLog("ConfigWord: %08X (Word 4)\n", wordData);
|
PrintAndLog("ConfigWord: %08X (Word 4)\n", wordData);
|
||||||
PrintAndLog("Config Breakdown:", wordData);
|
PrintAndLog("Config Breakdown:", wordData);
|
||||||
PrintAndLog(" Data Rate: %02X | RF/%u", wordData & 0x3F, datarate);
|
PrintAndLog(" Data Rate: %02u | RF/%u", wordData & 0x3F, datarate);
|
||||||
PrintAndLog(" Encoder: %u | %s", encoder, enc);
|
PrintAndLog(" Encoder: %u | %s", encoder, enc);
|
||||||
PrintAndLog(" PSK CF: %u | %s", PSKcf, cf);
|
PrintAndLog(" PSK CF: %u | %s", PSKcf, cf);
|
||||||
PrintAndLog(" Delay: %u | %s", delay, cdelay);
|
PrintAndLog(" Delay: %u | %s", delay, cdelay);
|
||||||
PrintAndLog(" LastWordR: %02u | Address of last default word read", LWR);
|
PrintAndLog(" LastWordR: %02u | Address of last word for default read", LWR);
|
||||||
PrintAndLog(" ReadLogin: %u | Read Login is %s", (wordData & 0x40000)>>18, (wordData & 0x40000) ? "Required" : "Not Required");
|
PrintAndLog(" ReadLogin: %u | Read Login is %s", (wordData & 0x40000)>>18, (wordData & 0x40000) ? "Required" : "Not Required");
|
||||||
PrintAndLog(" ReadHKL: %u | Read Housekeeping Words Login is %s", (wordData & 0x80000)>>19, (wordData & 0x80000) ? "Required" : "Not Required");
|
PrintAndLog(" ReadHKL: %u | Read Housekeeping Words Login is %s", (wordData & 0x80000)>>19, (wordData & 0x80000) ? "Required" : "Not Required");
|
||||||
PrintAndLog("WriteLogin: %u | Write Login is %s", (wordData & 0x100000)>>20, (wordData & 0x100000) ? "Required" : "Not Required");
|
PrintAndLog("WriteLogin: %u | Write Login is %s", (wordData & 0x100000)>>20, (wordData & 0x100000) ? "Required" : "Not Required");
|
||||||
|
@ -898,8 +898,11 @@ void printEM4x05info(uint8_t chipType, uint8_t cap, uint16_t custCode, uint32_t
|
||||||
}
|
}
|
||||||
|
|
||||||
void printEM4x05ProtectionBits(uint32_t wordData) {
|
void printEM4x05ProtectionBits(uint32_t wordData) {
|
||||||
for (uint8_t i = 0; i < 14; i++) {
|
for (uint8_t i = 0; i < 15; i++) {
|
||||||
PrintAndLog(" Word: %02u | %s", i, (((1 << i) & wordData ) || i < 2) ? "Is Locked" : "Is Not Locked");
|
PrintAndLog(" Word: %02u | %s", i, (((1 << i) & wordData ) || i < 2) ? "Is Write Locked" : "Is Not Write Locked");
|
||||||
|
if (i==14) {
|
||||||
|
PrintAndLog(" Word: %02u | %s", i+1, (((1 << i) & wordData ) || i < 2) ? "Is Write Locked" : "Is Not Write Locked");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1343,7 +1343,10 @@ uint8_t detectFSKClk(uint8_t *BitStream, size_t size, uint8_t fcHigh, uint8_t fc
|
||||||
continue;
|
continue;
|
||||||
// else new peak
|
// else new peak
|
||||||
// if we got less than the small fc + tolerance then set it to the small fc
|
// if we got less than the small fc + tolerance then set it to the small fc
|
||||||
if (fcCounter < fcLow+fcTol)
|
// if it is inbetween set it to the last counter
|
||||||
|
if (fcCounter < fcHigh && fcCounter > fcLow)
|
||||||
|
fcCounter = lastFCcnt;
|
||||||
|
else if (fcCounter < fcLow+fcTol)
|
||||||
fcCounter = fcLow;
|
fcCounter = fcLow;
|
||||||
else //set it to the large fc
|
else //set it to the large fc
|
||||||
fcCounter = fcHigh;
|
fcCounter = fcHigh;
|
||||||
|
@ -1409,7 +1412,7 @@ uint8_t detectFSKClk(uint8_t *BitStream, size_t size, uint8_t fcHigh, uint8_t fc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ii<0) return 0; // oops we went too far
|
if (ii<2) return 0; // oops we went too far
|
||||||
|
|
||||||
return clk[ii];
|
return clk[ii];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue