]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Merge pull request #63 from micolous/log-nonce
authorIceman <iceman@iuse.se>
Tue, 3 Jan 2017 18:19:38 +0000 (19:19 +0100)
committerGitHub <noreply@github.com>
Tue, 3 Jan 2017 18:19:38 +0000 (19:19 +0100)
nonce2key: printf->PrintAndLog

armsrc/lfops.c
client/cmdhficlass.c
client/cmdlfawid.c
client/cmdlfjablotron.c
client/cmdlfnedap.c
client/default_keys.dic
client/lualibs/mf_default_keys.lua
common/lfdemod.c

index 8e9c03a615a4aaee0cfd98cc31b5f4589ed0f150..90b8d0b3689b8351920531a8ac3a69c4f2b3a3ee 100644 (file)
@@ -400,6 +400,17 @@ void SimulateTagLowFrequency(int period, int gap, int ledcontrol)
        FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_EDGE_DETECT);
        //FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_EDGE_DETECT | FPGA_LF_EDGE_DETECT_READER_FIELD);
        //FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_EDGE_DETECT | FPGA_LF_EDGE_DETECT_TOGGLE_MODE );
+
+       // set frequency,  get values from 'lf config' command
+       sample_config *sc = getSamplingConfig();
+
+       if ( (sc->divisor == 1) || (sc->divisor < 0) || (sc->divisor > 255) )
+               FpgaSendCommand(FPGA_CMD_SET_DIVISOR, 88); //134.8Khz
+       else if (sc->divisor == 0)
+               FpgaSendCommand(FPGA_CMD_SET_DIVISOR, 95); //125Khz
+       else
+               FpgaSendCommand(FPGA_CMD_SET_DIVISOR, sc->divisor);
+       
        SetAdcMuxFor(GPIO_MUXSEL_LOPKD);
        
        AT91C_BASE_PIOA->PIO_PER = GPIO_SSC_DOUT | GPIO_SSC_CLK;
index b5fa46f06ba599090a31f58936b48425d841b353..1caeebb8d3d4219b8d6ece2b858a887385b3be5c 100644 (file)
@@ -769,7 +769,7 @@ int CmdHFiClassReader_Dump(const char *Cmd) {
        if (have_debit_key) memcpy(tag_data+(3*8),div_key,8);
        if (have_credit_key) memcpy(tag_data+(4*8),c_div_key,8);
        
-       printf("Num of bytes:  %d\n", gotBytes);
+       printf("Num of bytes:  %lu\n", gotBytes);
        
        // print the dump
        printf("------+--+-------------------------+\n");
index fefc6e0af1a2b6a15d921ddb81668f1ae5bdf231..8e6e407314388635bab65019828412203864d710 100644 (file)
@@ -115,7 +115,6 @@ static bool sendTry(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint32_t delay, ui
        return TRUE;
 }
 
-
 int CmdAWIDDemodFSK(const char *Cmd) {
        int findone = 0;
        if (Cmd[0] == 'h' || Cmd[0] == 'H') return usage_lf_awid_fskdemod();
index ee4b3957e4a35537e46e0e56cb1f9a3ea0f27fb9..7852508d1f07df2ace191183fb6d89194c38a566 100644 (file)
@@ -82,16 +82,12 @@ int CmdJablotronDemod(const char *Cmd) {
        int ans = JablotronDemod(DemodBuffer, &size);
        if (ans < 0){
                if (g_debugMode){
-                       // if (ans == -5)
-                               // PrintAndLog("DEBUG: Error - Jablotron not enough samples");
                        if (ans == -1)
                                PrintAndLog("DEBUG: Error - Jablotron too few bits found");
-                       // else if (ans == -2)
-                               // PrintAndLog("DEBUG: Error - Jablotron problem during ASK/Biphase demod");
-                       else if (ans == -3)
-                               PrintAndLog("DEBUG: Error - Jablotron Size not correct: %d", size);
-                       else if (ans == -4)
+                       else if (ans == -2)
                                PrintAndLog("DEBUG: Error - Jablotron preamble not found");
+                       else if (ans == -3)
+                               PrintAndLog("DEBUG: Error - Jablotron size not correct: %d", size);
                        else if (ans == -5)
                                PrintAndLog("DEBUG: Error - Jablotron checksum failed");
                        else
index 52cc7359fdd230bb7456146a294e87ac8e27027b..ab34d8ff8cbc1fa5da7fac7c48a1db68d2fa8ddd 100644 (file)
@@ -298,7 +298,7 @@ int CmdLFNedapSim(const char *Cmd) {
 }
 
 int CmdLFNedapChk(const char *Cmd){
-    
+    //301600714021BE
        uint8_t data[256] = { 0x30, 0x16, 0x00, 0x71, 0x40, 0x21, 0xBE};
        int len = 0;
        param_gethex_ex(Cmd, 0, data, &len);
@@ -313,7 +313,7 @@ int CmdLFNedapChk(const char *Cmd){
     uint8_t cl = 0x1D, ch = 0x1D, carry = 0;
     uint8_t al, bl, temp;
     
-       for (int i = len; i >=0; --i){
+       for (int i =len; i >= 0; --i){
                al = data[i];
         for (int j = 8; j > 0; --j) {
                        
@@ -340,7 +340,7 @@ int CmdLFNedapChk(const char *Cmd){
         }
     }
        
-       PrintAndLog("Nedap checksum: [ 0x21, 0xBE ] %x", ((ch << 8) | cl) );
+       PrintAndLog("Nedap checksum: 0x%X", ((ch << 8) | cl) );
        return 0;
 }
 
index 1302e11a9ebe862027bd918ddf859e87eff46a06..3fbbc4dce6233518bb4cedd828c3cc14f3423b2f 100644 (file)
@@ -7,7 +7,8 @@ b0b1b2b3b4b5,
 aabbccddeeff,
 4d3a99c351dd,
 1a982c7e459a,
-d3f7d3f7d3f7,
+d3f7d3f7d3f7,// key A Wien
+5a1b85fce20a,// key B Wien
 714c5c886e97,
 587ee5f9350f,
 a0478cc39091,
@@ -91,6 +92,7 @@ fc00018778f7,--VästtrafikenKeyA, RKFÖstgötaTrafikenKeyA
 85fed980ea5a,-- hotel system
 314B49474956,--VIGIK1KeyA
 564c505f4d41,--VIGIK1KeyB
+ba5b895da162,--VIGIK1KeyB
 #
 # Data from: http://irq5.io/2013/04/13/decoding-bcard-conference-badges/
 f4a9ef2afc6d,--BCARD KeyB
index d481515311964e12055ad052230aa821b2f007b5..86fd1f14d6ccfc06615b578a590020dec2d1fb4b 100644 (file)
@@ -10,7 +10,8 @@ local _keys = {
     'aabbccddeeff',
     '4d3a99c351dd',
     '1a982c7e459a',
-    'd3f7d3f7d3f7',
+    'd3f7d3f7d3f7', -- key A Wien
+       '5a1b85fce20a', -- key B Wien
     '714c5c886e97',
     '587ee5f9350f',
     'a0478cc39091',
index 64e6775c580ca436c2bf88fb3c1cd655e97bd9e2..c35ce561881757cc4b3d15c7114c3187f86acf0d 100644 (file)
@@ -677,7 +677,6 @@ int IOdemodFSK(uint8_t *dest, size_t size)
 int VikingDemod_AM(uint8_t *dest, size_t *size) {
        //make sure buffer has data
        if (*size < 64*2) return -2;
-
        size_t startIdx = 0;
        uint8_t preamble[] = {1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
        uint8_t errChk = preambleSearch(dest, preamble, sizeof(preamble), size, &startIdx);
@@ -693,7 +692,7 @@ int VikingDemod_AM(uint8_t *dest, size_t *size) {
        if ( checkCalc != 0xA8 ) return -5;     
        if (*size != 64) return -6;
        //return start position
-       return (int) startIdx;
+       return (int)startIdx;
 }
 
 // by iceman
@@ -706,7 +705,7 @@ int Visa2kDemod_AM(uint8_t *dest, size_t *size) {
        if (errChk == 0) return -2; //preamble not found
        if (*size != 96) return -3; //wrong demoded size
        //return start position
-       return (int) startIdx;
+       return (int)startIdx;
 }
 // by iceman
 // find Noralsy preamble in already demoded data
@@ -718,7 +717,7 @@ int NoralsyDemod_AM(uint8_t *dest, size_t *size) {
        if (errChk == 0) return -2; //preamble not found
        if (*size != 96) return -3; //wrong demoded size
        //return start position
-       return (int) startIdx;
+       return (int)startIdx;
 }
 // find presco preamble 0x10D in already demoded data
 int PrescoDemod(uint8_t *dest, size_t *size) {
@@ -729,54 +728,41 @@ int PrescoDemod(uint8_t *dest, size_t *size) {
        if (errChk == 0) return -2; //preamble not found
        if (*size != 128) return -3; //wrong demoded size
        //return start position
-       return (int) startIdx;
+       return (int)startIdx;
 }
 
 // Ask/Biphase Demod then try to locate an ISO 11784/85 ID
 // BitStream must contain previously askrawdemod and biphasedemoded data
-int FDXBdemodBI(uint8_t *dest, size_t *size)
-{
-       //make sure buffer has enough data
-       if (*size < 128) return -1;
-
+int FDXBdemodBI(uint8_t *dest, size_t *size) {
+       if (*size < 128*2) return -1;   //make sure buffer has enough data
        size_t startIdx = 0;
        uint8_t preamble[] = {0,0,0,0,0,0,0,0,0,0,1};
-
        uint8_t errChk = preambleSearch(dest, preamble, sizeof(preamble), size, &startIdx);
        if (errChk == 0) return -2; //preamble not found
+       if (*size != 128) return -3; //wrong demoded size
+       //return start position
        return (int)startIdx;
 }
 
 // ASK/Diphase fc/64 (inverted Biphase)
 // Note: this i s not a demod, this is only a detection
 // the parameter *dest needs to be demoded before call
+// 0xFFFF preamble, 64bits
 int JablotronDemod(uint8_t *dest, size_t *size){
-       //make sure buffer has enough data
-       if (*size < 64) return -1;
-
+       if (*size < 64*2) return -1;    //make sure buffer has enough data
        size_t startIdx = 0;
-       // 0xFFFF preamble, 64bits
-       uint8_t preamble[] = {
-                       1,1,1,1,
-                   1,1,1,1,
-                               1,1,1,1,
-                               1,1,1,1,
-                               0
-               };
-
+       uint8_t preamble[] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0};
        uint8_t errChk = preambleSearch(dest, preamble, sizeof(preamble), size, &startIdx);
-       if (errChk == 0) return -4; //preamble not found
-       if (*size != 64) return -3;
+       if (errChk == 0) return -2; //preamble not found
+       if (*size != 64) return -3; // wrong demoded size
        
        uint8_t checkchksum = 0;
        for (int i=16; i < 56; i += 8) {
                checkchksum += bytebits_to_byte(dest+startIdx+i,8);
        }
        checkchksum ^= 0x3A;
-
        uint8_t crc = bytebits_to_byte(dest+startIdx+56, 8);
-       
-       if ( checkchksum != crc ) return -5;    
+       if ( checkchksum != crc ) return -5;
        return (int)startIdx;
 }
 
Impressum, Datenschutz