projects
/
proxmark3-svn
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: hf mf mifare - populate keylist
[proxmark3-svn]
/
client
/
cmdlft55xx.c
diff --git
a/client/cmdlft55xx.c
b/client/cmdlft55xx.c
index 7999880c04bc71f449a491d90c7b152ce7d573b9..c5a6dd3f64623ed304c2487b50ae0238dedb7602 100644
(file)
--- a/
client/cmdlft55xx.c
+++ b/
client/cmdlft55xx.c
@@
-236,7
+236,7
@@
int CmdT55xxSetConfig(const char *Cmd) {
cmdp+=2;
\r
break;
\r
case 'd':
\r
cmdp+=2;
\r
break;
\r
case 'd':
\r
- param_getstr(Cmd, cmdp+1, modulation);
\r
+ param_getstr(Cmd, cmdp+1, modulation
, sizeof(modulation)
);
\r
cmdp += 2;
\r
\r
if ( strcmp(modulation, "FSK" ) == 0) {
\r
cmdp += 2;
\r
\r
if ( strcmp(modulation, "FSK" ) == 0) {
\r
@@
-419,23
+419,23
@@
bool DecodeT55xxBlock(){
break;
\r
case DEMOD_PSK1:
\r
// skip first 160 samples to allow antenna to settle in (psk gets inverted occasionally otherwise)
\r
break;
\r
case DEMOD_PSK1:
\r
// skip first 160 samples to allow antenna to settle in (psk gets inverted occasionally otherwise)
\r
- save_restoreGB(
1
);
\r
+ save_restoreGB(
GRAPH_SAVE
);
\r
CmdLtrim("160");
\r
snprintf(cmdStr, sizeof(buf),"%d %d 6", bitRate[config.bitrate], config.inverted );
\r
ans = PSKDemod(cmdStr, false);
\r
//undo trim samples
\r
CmdLtrim("160");
\r
snprintf(cmdStr, sizeof(buf),"%d %d 6", bitRate[config.bitrate], config.inverted );
\r
ans = PSKDemod(cmdStr, false);
\r
//undo trim samples
\r
- save_restoreGB(
0
);
\r
+ save_restoreGB(
GRAPH_RESTORE
);
\r
break;
\r
case DEMOD_PSK2: //inverted won't affect this
\r
case DEMOD_PSK3: //not fully implemented
\r
// skip first 160 samples to allow antenna to settle in (psk gets inverted occasionally otherwise)
\r
break;
\r
case DEMOD_PSK2: //inverted won't affect this
\r
case DEMOD_PSK3: //not fully implemented
\r
// skip first 160 samples to allow antenna to settle in (psk gets inverted occasionally otherwise)
\r
- save_restoreGB(
1
);
\r
+ save_restoreGB(
GRAPH_SAVE
);
\r
CmdLtrim("160");
\r
snprintf(cmdStr, sizeof(buf),"%d 0 6", bitRate[config.bitrate] );
\r
ans = PSKDemod(cmdStr, false);
\r
psk1TOpsk2(DemodBuffer, DemodBufferLen);
\r
//undo trim samples
\r
CmdLtrim("160");
\r
snprintf(cmdStr, sizeof(buf),"%d 0 6", bitRate[config.bitrate] );
\r
ans = PSKDemod(cmdStr, false);
\r
psk1TOpsk2(DemodBuffer, DemodBufferLen);
\r
//undo trim samples
\r
- save_restoreGB(
0
);
\r
+ save_restoreGB(
GRAPH_RESTORE
);
\r
break;
\r
case DEMOD_NRZ:
\r
snprintf(cmdStr, sizeof(buf),"%d %d 1", bitRate[config.bitrate], config.inverted );
\r
break;
\r
case DEMOD_NRZ:
\r
snprintf(cmdStr, sizeof(buf),"%d %d 1", bitRate[config.bitrate], config.inverted );
\r
@@
-507,8
+507,8
@@
bool tryDetectModulation(){
t55xx_conf_block_t tests[15];
\r
int bitRate=0;
\r
uint8_t fc1 = 0, fc2 = 0, ans = 0;
\r
t55xx_conf_block_t tests[15];
\r
int bitRate=0;
\r
uint8_t fc1 = 0, fc2 = 0, ans = 0;
\r
- int clk
=
0;
\r
- ans = fskClocks(&fc1, &fc2, (uint8_t *)&clk, false);
\r
+ int clk
= 0, firstClockEdge =
0;
\r
+ ans = fskClocks(&fc1, &fc2, (uint8_t *)&clk, false
, &firstClockEdge
);
\r
if (ans && ((fc1==10 && fc2==8) || (fc1==8 && fc2==5))) {
\r
if ( FSKrawDemod("0 0", false) && test(DEMOD_FSK, &tests[hits].offset, &bitRate, clk, &tests[hits].Q5)) {
\r
tests[hits].modulation = DEMOD_FSK;
\r
if (ans && ((fc1==10 && fc2==8) || (fc1==8 && fc2==5))) {
\r
if ( FSKrawDemod("0 0", false) && test(DEMOD_FSK, &tests[hits].offset, &bitRate, clk, &tests[hits].Q5)) {
\r
tests[hits].modulation = DEMOD_FSK;
\r
@@
-594,7
+594,7
@@
bool tryDetectModulation(){
clk = GetPskClock("", false, false);
\r
if (clk>0) {
\r
// allow undo
\r
clk = GetPskClock("", false, false);
\r
if (clk>0) {
\r
// allow undo
\r
- save_restoreGB(
1
);
\r
+ save_restoreGB(
GRAPH_SAVE
);
\r
// skip first 160 samples to allow antenna to settle in (psk gets inverted occasionally otherwise)
\r
CmdLtrim("160");
\r
if ( PSKDemod("0 0 6", false) && test(DEMOD_PSK1, &tests[hits].offset, &bitRate, clk, &tests[hits].Q5)) {
\r
// skip first 160 samples to allow antenna to settle in (psk gets inverted occasionally otherwise)
\r
CmdLtrim("160");
\r
if ( PSKDemod("0 0 6", false) && test(DEMOD_PSK1, &tests[hits].offset, &bitRate, clk, &tests[hits].Q5)) {
\r
@@
-638,7
+638,7
@@
bool tryDetectModulation(){
}
\r
} // inverse waves does not affect this demod
\r
//undo trim samples
\r
}
\r
} // inverse waves does not affect this demod
\r
//undo trim samples
\r
- save_restoreGB(
0
);
\r
+ save_restoreGB(
GRAPH_RESTORE
);
\r
}
\r
}
\r
if ( hits == 1) {
\r
}
\r
}
\r
if ( hits == 1) {
\r
@@
-810,6
+810,7
@@
bool test(uint8_t mode, uint8_t *offset, int *fndBitRate, uint8_t clk, bool *Q5)
if (!testBitRate(bitRate, clk)) continue;
\r
} else { //extended mode bitrate = same function to calc bitrate as em4x05
\r
if (EM4x05_GET_BITRATE(bitRate) != clk) continue;
\r
if (!testBitRate(bitRate, clk)) continue;
\r
} else { //extended mode bitrate = same function to calc bitrate as em4x05
\r
if (EM4x05_GET_BITRATE(bitRate) != clk) continue;
\r
+
\r
}
\r
//test modulation
\r
if (!testModulation(mode, modread)) continue;
\r
}
\r
//test modulation
\r
if (!testModulation(mode, modread)) continue;
\r
@@
-869,7
+870,7
@@
int special(const char *Cmd) {
int printConfiguration( t55xx_conf_block_t b){
\r
PrintAndLog("Chip Type : %s", (b.Q5) ? "T5555(Q5)" : "T55x7");
\r
PrintAndLog("Modulation : %s", GetSelectedModulationStr(b.modulation) );
\r
int printConfiguration( t55xx_conf_block_t b){
\r
PrintAndLog("Chip Type : %s", (b.Q5) ? "T5555(Q5)" : "T55x7");
\r
PrintAndLog("Modulation : %s", GetSelectedModulationStr(b.modulation) );
\r
- PrintAndLog("Bit Rate : %s", GetBitRateStr(b.bitrate, (b.block0 & T55x7_X_MODE)) );
\r
+ PrintAndLog("Bit Rate : %s", GetBitRateStr(b.bitrate, (b.block0 & T55x7_X_MODE
&& (b.block0>>28==6 || b.block0>>28==9)
)) );
\r
PrintAndLog("Inverted : %s", (b.inverted) ? "Yes" : "No" );
\r
PrintAndLog("Offset : %d", b.offset);
\r
PrintAndLog("Seq. Term. : %s", (b.ST) ? "Yes" : "No" );
\r
PrintAndLog("Inverted : %s", (b.inverted) ? "Yes" : "No" );
\r
PrintAndLog("Offset : %d", b.offset);
\r
PrintAndLog("Seq. Term. : %s", (b.ST) ? "Yes" : "No" );
\r
@@
-1233,11
+1234,7
@@
int AquireData( uint8_t page, uint8_t block, bool pwdmode, uint32_t password ){
PrintAndLog("command execution time out");
\r
return 0;
\r
}
\r
PrintAndLog("command execution time out");
\r
return 0;
\r
}
\r
-
\r
- uint8_t got[12000];
\r
- GetFromBigBuf(got,sizeof(got),0);
\r
- WaitForResponse(CMD_ACK,NULL);
\r
- setGraphBuf(got, sizeof(got));
\r
+ getSamples(12000,true);
\r
return 1;
\r
}
\r
\r
return 1;
\r
}
\r
\r
@@
-1436,7
+1433,7
@@
int CmdT55xxBruteForce(const char *Cmd) {
//The line start with # is comment, skip
\r
if( buf[0]=='#' ) continue;
\r
\r
//The line start with # is comment, skip
\r
if( buf[0]=='#' ) continue;
\r
\r
- if (!isxdigit(buf[0])) {
\r
+ if (!isxdigit(
(unsigned char)
buf[0])) {
\r
PrintAndLog("File content error. '%s' must include 8 HEX symbols", buf);
\r
continue;
\r
}
\r
PrintAndLog("File content error. '%s' must include 8 HEX symbols", buf);
\r
continue;
\r
}
\r
@@
-1558,7
+1555,7
@@
bool tryDetectP1(bool getData) {
uint8_t preamble[] = {1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1};
\r
size_t startIdx = 0;
\r
uint8_t fc1 = 0, fc2 = 0, ans = 0;
\r
uint8_t preamble[] = {1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,1};
\r
size_t startIdx = 0;
\r
uint8_t fc1 = 0, fc2 = 0, ans = 0;
\r
- int clk = 0;
\r
+ int clk = 0
, firstClockEdge = 0
;
\r
bool st = true;
\r
\r
if ( getData ) {
\r
bool st = true;
\r
\r
if ( getData ) {
\r
@@
-1567,7
+1564,7
@@
bool tryDetectP1(bool getData) {
}
\r
\r
// try fsk clock detect. if successful it cannot be any other type of modulation... (in theory...)
\r
}
\r
\r
// try fsk clock detect. if successful it cannot be any other type of modulation... (in theory...)
\r
- ans = fskClocks(&fc1, &fc2, (uint8_t *)&clk, false);
\r
+ ans = fskClocks(&fc1, &fc2, (uint8_t *)&clk, false
, &firstClockEdge
);
\r
if (ans && ((fc1==10 && fc2==8) || (fc1==8 && fc2==5))) {
\r
if ( FSKrawDemod("0 0", false) &&
\r
preambleSearchEx(DemodBuffer,preamble,sizeof(preamble),&DemodBufferLen,&startIdx,false) &&
\r
if (ans && ((fc1==10 && fc2==8) || (fc1==8 && fc2==5))) {
\r
if ( FSKrawDemod("0 0", false) &&
\r
preambleSearchEx(DemodBuffer,preamble,sizeof(preamble),&DemodBufferLen,&startIdx,false) &&
\r
Impressum
,
Datenschutz