I came across a bag full of HID tags using this format that I couldn't find documented anywhere. After some poking and prodding at the bits I worked out the format and figured I would contribute the addition. I added support to the demoudulator, tested reading, cloning, wiegand output, and simulation. I did not add support for this format to the brute forcer as it would require refactoring to support the OEM segment, and just hard coded a 0 into the OEM parameter added to clacWiegand inside the brute forcing code.
This format is backwards in that the parity logic is swapped, so I duplicated the existing function to do this. Plenty of head scratching to finally figure that out as none of the other HID formats seem to be encoded this way.
Format Details:
FC 1 - 16 - 16 bit
cardno 17 - 33 - 16 bit
oem 34 - 35 - 2 bit
Odd Parity 0th bit 1-17
Even Parity 36th bit 18-35
Some example bitstreams, card number is printed on tag along with sales order number from original purchase:
I came across a bag full of HID tags using this format that I couldn't find documented anywhere. After some poking and prodding at the bits I worked out the format and figured I would contribute the addition. I added support to the demoudulator, tested reading, cloning, wiegand output, and simulation. I did not add support for this format to the brute forcer as it would require refactoring to support the OEM segment, and just hard coded a 0 into the OEM parameter added to
clacWiegand
inside the brute forcing code.This format is backwards in that the parity logic is swapped, so I duplicated the existing function to do this. Plenty of head scratching to finally figure that out as none of the other HID formats seem to be encoded this way.
Format Details:
Some example bitstreams, card number is printed on tag along with sales order number from original purchase: