Proxmark3 community

Research, development and trades concerning the powerful Proxmark3 device.

Remember; sharing is caring. Bring something back to the community.


"Learn the tools of the trade the hard way." +Fravia

You are not logged in.

Announcement

Time changes and with it the technology
Proxmark3 @ discord

Users of this forum, please be aware that information stored on this site is not private.

#1 2012-03-29 23:56:08

Szakalit
Member
Registered: 2012-03-29
Posts: 3

Storage CRC

Hello

Does anybody know how to calculate "Storage CRC" for example CRC of UID ??

Thank You

Offline

#2 2012-04-11 21:00:16

Szakalit
Member
Registered: 2012-03-29
Posts: 3

Re: Storage CRC

Hello

Ok i know how to calculate storage CRC8 and CRC16 i someone will need that pm me.


Bye

Offline

#3 2012-04-12 07:06:58

rule
Member
Registered: 2008-05-21
Posts: 417

Re: Storage CRC

Can you paste the polynomial, or your example code that generates the correct CRC?
Or is this covered in this paper, which was published by Henryk and Karsten?

Offline

#4 2012-04-19 22:02:31

Szakalit
Member
Registered: 2012-03-29
Posts: 3

Re: Storage CRC

Hello

Yes "Storage" CRC8 polynomial is correct in this document (0xC6 - in reverse) and initial value is 0x55
And for CRC16 polynomial is 0xB400 (in reverse) and initial value is word constructed from UIDCRC for example:
UIDCRC id 0x78 (in reverse) the initial will be 0x7878

I don't have Proxmark but I'm writing reader/writer/emulator on dsPIC30 and now code for calculating this CRC i have in Pascal (Delphi) if someone will need some help write me ill try to help.

Also im fixing Proxmark code because it have some bugs like in "legic_prng_forward":

now it is:

lfsr.a = lfsr.a >> 1 | (lfsr.a ^ lfsr.a >> 6) << 6;

but it have to be:

lfsr.a = (lfsr.a >> 1 | (lfsr.a ^ lfsr.a >> 6) << 6) & 0x7F;

So it will generate valid decode stream and it will work not only with 0x55 RAND value.

Offline

Board footer

Powered by FluxBB