Однажды я заснул крепким алкогольным сном, положив метрошный "Ультралайт" под подушку. И вот что мне приснилось:
Если интересно - опишу подробнее. Если нет - ну, отстойник - он и есть отстойник.
Код:
0000 04 a4 60 48 c9 b4 02 80-ff 48 00 00 00 00 00 00
0010 41 87 60 03 de 79 84 15-9a 1b c0 00 15 9b 00 00
0020 15 9b 0f 00 00 00 00 00-91 e6 56 7d 00 00 00 00
0030 15 9b 0f 00 00 00 00 00-91 e6 56 7d 00 00 00 00
смеще-
ние длина описание
00 9 серийный номер чипа и контрольный байт
09 1 зарезервировано производителем
0a 2 lock-биты (не используется)
0c 4 однократно программируемая область (не используется)
10 2 всегда 41 87
12 1 чаще всего 60, но бывает 50 или 70
13 4 номер билета, смещён на 4 разряда влево, в младшей незначащей
тетраде всегда 4
17 2 Дата1 - такая же, как Дата1 или на 1 день раньше - дата выпуска
билета?
19 3 всегда 1b c0 00
1c 2 Дата2 - дата продажи билета
20 2 Дата3 - дата первого прохода. На новом билете - такая же, как
Дата2
Все даты - число дней с 1 января 1992 года.
22 1 на разных картах - 0, 0b, 0c, и т.п. до 1f
23 1 на новых билетах - 40, на использованных - 00
24 1 число оставшихся поездок
25 2 всегда 00 00
27 1 на всех билетах 00. Но на одном попалось 01.
28 4 какая-то контрольная сумма? На всех картах разное. На
какой-либо вариант LRC не похоже, и с CRC32 разных частей
буфера с разными полиномами тоже не совпадает.
2с 4 всегда 00 00 00 00
TODO: записать весь жЫзненный цикл карты.
Нижние 2 строки (секции 8-11 и 12-15 - байты 20-2f и 30-3f соответственно)
всегда совпадают.