garps

Mifare 7byte UID и DEC код на карте. Принцип кодирования?

Рекомендуемые сообщения

Пытаюсь понять по какой логике получено десятичное число 1012728968 нанесенное на карту, когда полный 7 байтный UID карты 045D3C62674F80? Если просто перевести 1012728968 в HEX то будет 3C5D0488. Откуда эти 88 берутся?

 

Задача по формуле восстановить из считываемого 7byte UID то число, которое напечатано на карте.

 

MIFARESMARTEC.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, начнём с того, что у Вас карта Ультралайт.......

И номер её при чтении начинается как раз с 88h.

Это признак карты Ультралайт.

Ну а дальше сам номер - 7 байт.

То есть карта на запрос отвечает так: 88 04 5В 3С 62 67 4А 80.

В сумме получается не 7 а 8 байт.

Из них взяли только первые 4 байта - 88 04 5D 3C.

И ещё их перевернули - 3C 5D 04 88.

В десятичном виде это как раз и получается - 1 012 728 968.

 

Так что всё правильно !!!

 

Ну а у Вас в начале поста приведён только сам номер карты без признака ( 88h ) ....... :bs:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Карта вообще Plus S... 88 это видимо код производителя карты и он мало какими ридерами читается, или скорее по умолчанию отбрасывается?

 

Производитель выдал такую формулу:

Sector 0 block 0,HEX number is C1AB3412****.

MSB UID 1234ABC1(ISO format 8 bits of HEX UID)

Detail:

8H-10D >> 1234ABC1,0305441729 >> 0305441729 (result)

(2H-3D),(4H-5D) >> (34H),(ABC1H)>> 052,43969 (result)

Final:

(8H-10D) (2H-3D),(4H-5D) >> 0305441729 052,43969

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Карта вообще Plus S... 88 это видимо код производителя карты и он мало какими ридерами читается, или скорее по умолчанию отбрасывается?

 

Производитель выдал такую формулу:

Sector 0 block 0,HEX number is C1AB3412****.

MSB UID 1234ABC1(ISO format 8 bits of HEX UID)

Detail:

8H-10D >> 1234ABC1,0305441729 >> 0305441729 (result)

(2H-3D),(4H-5D) >> (34H),(ABC1H)>> 052,43969 (result)

Final:

(8H-10D) (2H-3D),(4H-5D) >> 0305441729 052,43969

 

Ну даже если плюс, то 88 ( признак - CT) показывает, что читать надо именно 7 - байтный номер.

И он читается по-другому, в отличии от 4-х байтного.......

При чтении идёт CT + три байта UID. Затем нужно снова обратиться к карте и получить оставшиеся 4 байта UID.

 

То есть команда Select бывает Single, Double и Triple ( SL1 = на 4-х, SL2 = на 7-ми и SL3 = на 10-ти байтные номера ) .

Ну это всё есть в документации .....

 

А считыватели, тут Вы правы, именно отбрасывают этот признак и выводят на индикацию только сам номер .........

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А насколько корректно было использовать служебный признак СТ (88) в генерации десятичного 10 значного номера карты?

Получается, что в таком номере уникальными будут только 3 байта 88 04 5В 3С 62 67 4А 80.

Есть какой-то ISO стандарт который описывает генерацию кода для карт с 7 байтным UID?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А насколько корректно было использовать служебный признак СТ (88) в генерации десятичного 10 значного номера карты?

Получается, что в таком номере уникальными будут только 3 байта 88 04 5В 3С 62 67 4А 80.

Есть какой-то ISO стандарт который описывает генерацию кода для карт с 7 байтным UID?

 

А кто Вам сказал, что признак у такой карты 88h ? Нет, там другой......

Ещё раз. Признак только показывает, что, при чтении номера, надо читать больше 4-х байт.

Считыватель его в код не включает......

А почему Вы думаете, что потом берутся для работы именно левые байты номера карты ?

Могут браться и правые. То что у Вас на карте написано - это ничего не значит.

 

Вопрос. А зачем Вам 10-ти байтный номер ?

Я вот пока такого "зверя" не встречал.....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вы и сказали, вроде "Ну даже если плюс, то 88 ( признак - CT) показывает, что читать надо именно 7 - байтный номер." )

 

Номер на карте может быть полезен для идентификации карты без считывателя, например.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вы и сказали, вроде "Ну даже если плюс, то 88 ( признак - CT) показывает, что читать надо именно 7 - байтный номер." )

 

 

 

Да, сказал. У Ультралайтов именно признак = 88h. У них номер 7-ми байтный.

Вы написали, что у Вас плюс.

Получается что там признак такой же......

Но у 10-ти байтных должен быть другой. Какой - не знаю.

Мне пока 10-ти байтные номера не попадались......

 

 

Номер на карте может быть полезен для идентификации карты без считывателя, например.

 

Интересная мысль !!!

А зачем это нужно без считывателя ??? :cf:

И, главное, как Вы без считывателя проверите, что написанное соответствует содержимому ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как сделать копию ключа дом.ру, не имея оригинал на руках. Я вроде читал, что владельцы tmd-5s как то просто вводят на приборе uid и пишут на zero и всё работает, а как сделать подобное в mifare classic recovery tool или в NFC maker, имея только uid? В mifare classic recovery tool пробовал вбивать эти 4 байта, но он ругается, что-то нужно делать с остальными байтами в 0 блоке, как-то рассчитать

 

С NFC makerom разобрался вроде, он после этих 4 байт кода добавляет ещё 42, а всё остальное нули, и тогда uid меняется у карты

13662669.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Alukard сказал:

А как сделать копию ключа дом.ру, не имея оригинал на руках. Я вроде читал, что владельцы tmd-5s как то просто вводят на приборе uid и пишут на zero и всё работает, а как сделать подобное в mifare classic recovery tool или в NFC maker, имея только uid? В mifare classic recovery tool пробовал вбивать эти 4 байта, но он ругается, что-то нужно делать с остальными байтами в 0 блоке, как-то рассчитать

 

С NFC makerom разобрался вроде, он после этих 4 байт кода добавляет ещё 42, а всё остальное нули, и тогда uid меняется у карты

13662669.jpg

 

На самом деле одного UID мало.

Поэтому пишется 8 байт информации:

 UID  +  BCC  +  SAK  +  ATQA

 

Обращаю внимание, что здесь UID пишется, начиная с младшего байта.

BCC - контрольная сумма ( от UID)

SAK = 08 для Classic 1K

ATQA = 04 00 для Classic 1K

 

Например:

B2 01 E1 1C   4E   08   04 00

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, petr5555 сказал:

Обращаю внимание, что здесь UID пишется, начиная с младшего байта.

то есть на карте он был бы напечатан как B2 01 E1 1C или как 1C E1 01 B2 ?

при таком вводе B2 01 E1 1C NFC Maker тоже мне посчитал сумму 4E

 

Цитата

BCC - контрольная сумма ( от UID)

SAK = 08 для Classic 1K

ATQA = 04 00 для Classic 1K

 

Например:

B2 01 E1 1C   4E   08   04 00

 

А есть оффлайновые решения для подсчёта bcc, может какая нибудь готовая формула для Excel? или сайт где можно ввести 4 байта и получить bcc

Помню давно, для подсчёта crc у далласов  и записи их на rw1990 через arduino, скачивал ikeybase, который автоматически подсчитывал им контрольную сумму при вводе

 

И хотел узнать, насколько важны оставшиеся 8 байт в 0 секторе? Если в своём ключе я забью их нулями, а в оригинале там что-то другое, домофон откроется или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, Alukard сказал:

то есть на карте он был бы напечатан как B2 01 E1 1C или как 1C E1 01 B2 ?

при таком вводе B2 01 E1 1C NFC Maker тоже мне посчитал сумму 4E

 

 

А есть оффлайновые решения для подсчёта bcc, может какая нибудь готовая формула для Excel? или сайт где можно ввести 4 байта и получить bcc

Помню давно, для подсчёта crc у далласов  и записи их на rw1990 через arduino, скачивал ikeybase, который автоматически подсчитывал им контрольную сумму при вводе

 

И хотел узнать, насколько важны оставшиеся 8 байт в 0 секторе? Если в своём ключе я забью их нулями, а в оригинале там что-то другое, домофон откроется или нет?

 

 

 

Ну так вот как я написал ( B2 01 E1 1C   4E   08   04 00 ), так и должно писаться на заготовку ( сектор 0, блок 0 ).

А вот как пишет ваша программа - это я не знаю.......

Но, скорее всего, так и пишет.

А на самих корпусах ключей UID может писаться по-разному.

Тут надо взять хоть один ключ от домофона, прочитать UID и сравнить с написанным на корпусе......

Или сделать 2 варианта копии.

 

BCC, как я помню, это просто логическая операция XOR над 4-мя байтами UID.

 

А зачем вам оставшиеся 8 байт ? 

Чтение производится только по этим первым 8 байтам.

Так что можете оставшиеся 8 байт забивать чем угодно.......

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вступить в беседу

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...