X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/b24930c764849e16048936d62ff426a05083d2b1..b05611a30bc5d4815a7603afe6593f2e852be91a:/common/lfdemod.c diff --git a/common/lfdemod.c b/common/lfdemod.c index f470371a..fd149045 100644 --- a/common/lfdemod.c +++ b/common/lfdemod.c @@ -1780,6 +1780,7 @@ int IOdemodFSK(uint8_t *dest, size_t size, int *waveStartIdx) { // indala id decoding int indala64decode(uint8_t *bitStream, size_t *size, uint8_t *invert) { //standard 64 bit indala formats including 26 bit 40134 format + // Note: these start with 3 bits from the end of one UID; the rest are from a subsequent one uint8_t preamble64[] = {1,0,1,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 1}; uint8_t preamble64_i[] = {0,1,0,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 0}; size_t startidx = 0; @@ -1791,6 +1792,10 @@ int indala64decode(uint8_t *bitStream, size_t *size, uint8_t *invert) { *invert ^= 1; } if (found_size != 64) return -2; + + // Skip the aforementioned 3 bits from the previous UID + startidx += 3; + if (*invert==1) for (size_t i = startidx; i < found_size + startidx; i++) bitStream[i] ^= 1;