Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[up] Ну, околотемные мысли по поводу 23.04.08 09:53 Число просмотров: 9092
Автор: Ustin <Ustin> Статус: Elderman Отредактировано 23.04.08 10:50 Количество правок: 7
|
> Ну так что? По делу что будет, или же "околотемные", никому > не нужные и не помогающие в достижении поставленной задачи > беседы? Конечно околотемные, я ж не держал в руках эту железку :)
> Структура хранения информации в билете. > Все уже выучено. В принципе, я могу даже эмулятор сделать и > создавать точные копии, которые сбрасывать обратно "в ноль" > после использования, но задача не в этом.
Ок.. Исключить не используемые в подсчёте КС данные можно так:
взять 10 единиц карту, после каждой поездки - дамп. Таким образом будет последовательность минимально отличных данных, которую можно будет дальше скармливать тестовой проге (серийник билета будет одинаковый). Если можно сбросить в исходное состояние - сбросить и повторить цикл - какая закономерность? Отличается ли содержимое от предыдущего цикла?
Далее, есть такие штуки, которые не уменьшают число поездок - чем чёрт не шутит - вдруг они тоже модифицируют дату в карте? Вдруг КС может иметь множество значений при [одинаковом] наборе данных?
Потом, насколько я помню, эти карточки имеют срок действия - поэтому эксперимент лучше всего проводить на рубеже сроков, вернее когда можно иметь в валидном состоянии старые и новые карты.
Ещё: когда карточка переходит в "0" - не выставляется ли нигде признак "особое состояние"? Может достаточно было бы сбросить его, чтобы продолжился декремент?
В конце концов, что говорит ридер при забитой 0ми [$FF] КС?
В карте есть One Time Programmable area - она меняется в процессе уменьшения числа поездок на каких-нить картах?
По поводу тестовой проги: о методике её написания можно будет судить только после получения дампов, отвечающих на поставленные вопросы - тогда обсуждение примет более предметный характер
[up]Кстати, после получения дампа с картей на 9 и 8 поездок, я бы попробовал зашить в карту поездки #9, поездку #8 тупой записью данных об этом - а ВДРУГ карта считает КС сама (при беглом знакомстве со стандартом я этого не нашёл, да и врядли, но мало ли)
[up2] Более hard метод, если информации из предыдущих не хватит для решения задачи или захочется выломать алгоритм КС, который, кстати, может меняться со временем или в голове их может быть зашито несколько с целью плавного перехода со старого на новый: собрать заведомо некорректную карту и посмотреть, что с ней сделает ридер. Далее - набрать N картей (N=объём RW + объём OTP байт, можно конечно и бит, но тогда килограмм макулатуры под пальто будет однозначно палить кантору), или юзать меньше и последовательно, если ридер, например, не гадит OTP при инвалидации карты, поменять в них по одному байту(биту в вар 2) на некорректный, и отследить валидируемость (тут может как раз помочь тот терминал, который не вычитает поездки) - тогда получится 100% карта памяти, для которой считается КС.
Далее будет крайне полезно поиметь КС от 0, но без головы это врядли получится, т.к. тут по-любому используется серийник карты
|
|
|