garps 0 Жалоба Опубликовано 26 июля, 2017 Пытаюсь понять по какой логике получено десятичное число 1012728968 нанесенное на карту, когда полный 7 байтный UID карты 045D3C62674F80? Если просто перевести 1012728968 в HEX то будет 3C5D0488. Откуда эти 88 берутся? Задача по формуле восстановить из считываемого 7byte UID то число, которое напечатано на карте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
petr5555 293 Жалоба Опубликовано 27 июля, 2017 Ну, начнём с того, что у Вас карта Ультралайт.......И номер её при чтении начинается как раз с 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 ) ....... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
garps 0 Жалоба Опубликовано 28 июля, 2017 Карта вообще 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
petr5555 293 Жалоба Опубликовано 29 июля, 2017 Карта вообще 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-ти байтные номера ) .Ну это всё есть в документации ..... А считыватели, тут Вы правы, именно отбрасывают этот признак и выводят на индикацию только сам номер ......... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
garps 0 Жалоба Опубликовано 9 августа, 2017 А насколько корректно было использовать служебный признак СТ (88) в генерации десятичного 10 значного номера карты?Получается, что в таком номере уникальными будут только 3 байта 88 04 5В 3С 62 67 4А 80.Есть какой-то ISO стандарт который описывает генерацию кода для карт с 7 байтным UID? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
petr5555 293 Жалоба Опубликовано 10 августа, 2017 А насколько корректно было использовать служебный признак СТ (88) в генерации десятичного 10 значного номера карты?Получается, что в таком номере уникальными будут только 3 байта 88 04 5В 3С 62 67 4А 80.Есть какой-то ISO стандарт который описывает генерацию кода для карт с 7 байтным UID? А кто Вам сказал, что признак у такой карты 88h ? Нет, там другой......Ещё раз. Признак только показывает, что, при чтении номера, надо читать больше 4-х байт.Считыватель его в код не включает......А почему Вы думаете, что потом берутся для работы именно левые байты номера карты ?Могут браться и правые. То что у Вас на карте написано - это ничего не значит. Вопрос. А зачем Вам 10-ти байтный номер ?Я вот пока такого "зверя" не встречал..... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
garps 0 Жалоба Опубликовано 10 августа, 2017 Так вы и сказали, вроде "Ну даже если плюс, то 88 ( признак - CT) показывает, что читать надо именно 7 - байтный номер." ) Номер на карте может быть полезен для идентификации карты без считывателя, например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
petr5555 293 Жалоба Опубликовано 10 августа, 2017 Так вы и сказали, вроде "Ну даже если плюс, то 88 ( признак - CT) показывает, что читать надо именно 7 - байтный номер." ) Да, сказал. У Ультралайтов именно признак = 88h. У них номер 7-ми байтный.Вы написали, что у Вас плюс. Получается что там признак такой же......Но у 10-ти байтных должен быть другой. Какой - не знаю. Мне пока 10-ти байтные номера не попадались...... Номер на карте может быть полезен для идентификации карты без считывателя, например. Интересная мысль !!!А зачем это нужно без считывателя ??? И, главное, как Вы без считывателя проверите, что написанное соответствует содержимому ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
Alukard 2 Жалоба Опубликовано 30 ноября, 2020 А как сделать копию ключа дом.ру, не имея оригинал на руках. Я вроде читал, что владельцы tmd-5s как то просто вводят на приборе uid и пишут на zero и всё работает, а как сделать подобное в mifare classic recovery tool или в NFC maker, имея только uid? В mifare classic recovery tool пробовал вбивать эти 4 байта, но он ругается, что-то нужно делать с остальными байтами в 0 блоке, как-то рассчитать С NFC makerom разобрался вроде, он после этих 4 байт кода добавляет ещё 42, а всё остальное нули, и тогда uid меняется у карты Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
petr5555 293 Жалоба Опубликовано 30 ноября, 2020 1 час назад, Alukard сказал: А как сделать копию ключа дом.ру, не имея оригинал на руках. Я вроде читал, что владельцы tmd-5s как то просто вводят на приборе uid и пишут на zero и всё работает, а как сделать подобное в mifare classic recovery tool или в NFC maker, имея только uid? В mifare classic recovery tool пробовал вбивать эти 4 байта, но он ругается, что-то нужно делать с остальными байтами в 0 блоке, как-то рассчитать С NFC makerom разобрался вроде, он после этих 4 байт кода добавляет ещё 42, а всё остальное нули, и тогда uid меняется у карты На самом деле одного 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
Alukard 2 Жалоба Опубликовано 30 ноября, 2020 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 секторе? Если в своём ключе я забью их нулями, а в оригинале там что-то другое, домофон откроется или нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
petr5555 293 Жалоба Опубликовано 30 ноября, 2020 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 байт забивать чем угодно....... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Вступить в беседу
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.