закрыть X

### Опции скрытого текста

%field должно быть только числовым
%field необходимо
По меньшей мере, один параметр требуется

Следующие ошибки возникли при попытке отправки сообщения:

Скрыть по количеству сообщений
Требуется сообщений
Скрыть от гостей
Скрыть от всех групп, кроме выбранных
Группы
Глобальный модератор
Модератор раздела
Новичок
Начинаю писать
Постоялец
Знающий
Старожил
Модератор
ВИП
Ветеран
Неприкасаемый
Проходил мимо
Прохожий
Друзья
Новичок
Ветераны форума
Новичок
Скрыть по количеству Спасибо поставленных пользователю
Кол-во сказанных пользователю Спасибо
Скрыть пока не скажут Спасибо
« предыдущая тема следующая тема »
Страницы: « 1 ... 19 20 21 22 23 ... 44 » Вниз

# Иформация о Eurocrypt (помните такое?)

- 436 Ответов
- 32694 Просмотров

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #200: Воскресенье 17 Октября 2021, 13:06:08 »
Цитата(Shurik406 от Воскресенье 17 Октября 2021, 10:48:51)

> т.е. считается что если этот байт 00, то EEPROM пуст (или почти пуст) в состоянии болванки и идет програмированние аппликации - типа на фабрике (или где там это делается).

Вот это вот светлая мысль, а вот дальше пошел какой-то бред.
Кто кому будет давать разрешение программировать EEPROM ? Карта сама себе ? И зачем это нужно отображать в ATR ? А, понял ... а в каком смысле ты употребляешь "программировать EEPROM" ? В том смысле в каком программируют пики или атмелки через специальный аппаратный механизм прошивания чипа специальным программатором ? Да нет тут ничего подобного и в помине. Ячейки EEPROM прошивает исполняющаяся в карте программа, ее ПО, манипулируя спецрегистрами.
А тогда
- если карта - болванка, то в EEPROM ничего еще не залито, значит надо залить, а тогда никакого запрета на запись в EEPROM не может быть
- если карта в пользовательском режиме, то ей надо писать в EEPROM оперключи, подписки, ПИН-кода при их смене и т.д., а значит запрета снова не может быть
Ну так какой, блин, в задницу запрет ?
- а вот специального аппаратного механизма прошивания EEPROM не существует. ПО на карте исполняется, оно и пишет. А изначальное ПО находится в ROM, оно в карте от рождения
Короче, ты как двоечник, просто начал лепить что в голову пришло. Мысли, взятые с потолка. А на потолке нечего ценного нет. Дизассемблируешь ROM и ползаешь по распечатке комментируя. Источник всех мыслей там. И там всего 1 кило кода и ничего сложного.
А вот когда у других карт сложная прошивка, чтобы быстрее разобраться, я пишу эмуль, с интерфейсом, как у досовского debug - отладчика и прохожу прошивку карты по шагам. Ползаю по коду трассируя и вижу что и как делается. Тоже метод.

Подумал(a) и добавил(a): Воскресенье 17 Октября 2021, 13:09:39

Цитата(Shurik406 от Воскресенье 17 Октября 2021, 10:48:51)

> Но если дадите кусочек кода который отвечает за проверку флагов (видимо там их 5 если макс. диапазон 8F)

Полный листинг ты можешь сам получить с помощью IDA. А потом в текстовом редакторе поиск в тексте комбинации символов $22 и находишь все обращения к ячейке $22. Их там раз, два и обчелся.

Подумал(a) и добавил(a): Воскресенье 17 Октября 2021, 13:30:12

Цитата(Shurik406 от Воскресенье 17 Октября 2021, 10:48:51)

> А чем прописывать если дамп EEPROMa от карты с ATR 24 - нет?

Да там наверняка засрался один блок EEPROM длиной $20 байт. Запись в EEPROM на этих чипах идет такими блоками. Этот блок или стерся до нулей или в него записалось что-то поверх и код в нем стал бессмысленным. Найти засратый блок и записать туда такой код чтобы аппликация работала. Не обязательно строго такой как был, а просто чтобы работала и все. А адреса RECV и SEND из ROM-а ты увидишь в незасратой части аппликации.

Подумал(a) и добавил(a): Воскресенье 17 Октября 2021, 13:52:37

Цитата(Shurik406 от Воскресенье 17 Октября 2021, 10:48:51)

> Глитчился вот так -
> 09 0E 03 01 20 xx xx 09 0F 00

Кстати, ты все время повторяешь один раз показанную тебе схему. Она-же родилась на коленке, как первое что приходило в голову, но как только я понял, что первый байт ATR выдается не из цикла выдачи строки, я тут-же ее переделал.
Если первый байт ATR выдается как отдельный байт, невозможно его раскрутить на выдачу строки подлиннее (а значит и дампа ОЗУ). Потому-что отдельный байт это не строка.
А что у меня дамп ОЗУ таки вылетел, так я ХЕЗ как это произошло. Как-то. Глюки не так сработали.

Подумал(a) и добавил(a): Воскресенье 17 Октября 2021, 14:07:19

В свете вот этого
Цитата(Shurik406 от Понедельник 06 Сентября 2021, 14:13:57)

> Год назад я разобрался в алгоритме в картах Syster (там тоже DES, но мученый) из програмы PIC и перевел в C... а в других процах я не смотрел. Плюс у каждого проца свои инструкции, SFRs и нюансы. ​

вот это
Цитата(Shurik406 от Воскресенье 17 Октября 2021, 10:48:51)

> Полностью дисассемблировать ROM и EEPROM для меня не вариант, так как если и правильно смогу это сделать, то буду смотреть на него годами и глазами хлопать. Но если дадите кусочек кода который отвечает за проверку флагов (видимо там их 5 если макс. диапазон 8F), то может что то и надумаю.

звучит как какое-то НЛП "Сделай за меня, а я палец о палец ..."
Сказали Спасибо: kurag, balton, lift-man, 08floda, Shurik406
« Последнее редактирование: Воскресенье 17 Октября 2021, 14:13:32 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

- Начинаю писать
- 232
- 488 раз
- 58W |-----| 55E
  Много чего
  UK

##### Иформация о Eurocrypt (помните такое?)

« Ответ #201: Воскресенье 17 Октября 2021, 14:35:55 »
Цитата

> Ну так какой, блин, в задницу запрет ?

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

> - а вот специального аппаратного механизма прошивания EEPROM не существует. ПО на карте исполняется, оно и пишет.

Понятно. Думал что есть.
Цитата

> Ячейки EEPROM прошивает исполняющаяся в карте программа, ее ПО, манипулируя спецрегистрами.
> А изначальное ПО находится в ROM, оно в карте от рождения

А в ПО, если рег $22 = 0, он прописывает изначальную аппликацию в EEPROM если он пуст? Имеется ввиду, есть ли копия изначальной аппликации которая переписывается из ROM в EEPROM? А если нет, то надо как-то дотянутся до рутины которая стирает, а потом прописывает ячейки с кодом (Ответ в дисассемблере...).
Цитата

> Дизассемблируешь ROM и ползаешь по распечатке комментируя. Источник всех мыслей там. И там всего 1 кило кода и ничего сложного.
> Полный листинг ты можешь сам получить с помощью IDA. А потом в текстовом редакторе поиск в тексте комбинации символов $22 и находишь все обращения к ячейке $22. Их там раз, два и обчелся.

IDA никогда не пользовал, надо поучится и посмотреть. Цена полной версии там, конечно, на потолке.
Цитата

> Ты же вроде позиционировал себя, как программист на Сцях. На Си, а не на PHP. Довольно низкоуровневый язык, который прямо проецируется на ассемблер. Исходники-же на Си на гитхаб выкладывал. Или я ошибся ?

Любительский, а не проф. На Си я практически на процах ничего не писал. Только простую програмку для AVR как эмулятор карт Видеокрипт. Но это используя уже готовую библиотеку avr.h и не на низком уровне как в ассемблере.
И, да, ПИК код я перевел на Си, по крайней мере частично. Хотя на это ушло три недели используя Microchip IDE для постепного трейсинга... очень медленный процесс.
Короче установлю IDA и поковыряюсь...
- Спасибо
Сказали Спасибо: lift-man
Жалоба Записан

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #202: Воскресенье 17 Октября 2021, 15:01:56 »
Цитата(Shurik406 от Воскресенье 17 Октября 2021, 14:35:55)

> Цена полной версии там, конечно, на потолке.

Брр..брр..бррр
У меня самый боевой комп с Windows 98, из него аж пучки проводов торчат. Не могу расстаться. Так вот на нем еще аж MS-DOS-овская версия IDA 3.75, Вот она моторолу 6805 понимаИт, вот я ею и дизассемблю. Какие деньги ? Оно уже ничего не стоит ... а свое дело делает.
Ладно, пилят, щас ею подготовлю тебе листинг.
И да, китайса, то-ли уворованную, то-ли крякнутую версию из распоследних недавно выкладывали, а вот я забыл где. Тама шикарный набор всякого проца был, декомпиляторы всякие ...

Подумал(a) и добавил(a): Воскресенье 17 Октября 2021, 15:23:25

Цитата(Shurik406 от Воскресенье 17 Октября 2021, 14:35:55)

> А в ПО, если рег $22 = 0, он прописывает изначальную аппликацию в EEPROM если он пуст?

Ну ведь опять НЛП. Не мытьем так катаньем вытащить ответ не из дизасм-листинга, а из меня.
И о каком ПО идет речь ? Их там два - в ROM и в EEPROM
Как карта Filmnet выглядела ?
В ROM сразу на заводе оказывался код СУД Eurocrypt-M
А в картах Eurocrypt-S не так.
В ROM на заводе оказывалась операционная система общего назначения. Не имеющая отношения к СУД.
Ею можно было чип самотестировать, EEPROM читать и прописывать, в т.ч прописать в EEPROM аппликацию.
Ну это я предполагаю, я команды этой операционки еще не разбирал, не было надобности. Просто их там до фига и что-же они тогда делают, как не это ?
Так вот, в картах CTV аппликация в EEPROM - это и есть код СУД Eurocrypt-S2
И в операционке имелось ветвление - получив заголовок команды CLA INS P1 P2 P3 кому управление для обработки этой команды отдавать - операционке или аппликации.
Когда карта - болванка работает ветка передавать управление операционке, т.е. карта исполняет команды операционки
Когда карта в user - режиме работает ветка передавать управление аппликации, т.е. карта исполняет команды аппликации
И это настолько важно - в каком состоянии карта (болванка, user, деактивированная и т.д.), что это состояние отображается в ATR карты.
Сказали Спасибо: kurag, balton, sankr, lift-man, Shurik406
« Последнее редактирование: Воскресенье 17 Октября 2021, 15:40:00 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

- Начинаю писать
- 232
- 488 раз
- 58W |-----| 55E
  Много чего
  UK

##### Иформация о Eurocrypt (помните такое?)

« Ответ #203: Воскресенье 17 Октября 2021, 19:08:19 »
Вот листинг ROM - вроде бы похоже на то что вы выкладывали.
Буду смотреть.
Цитата

> И это настолько важно - в каком состоянии карта (болванка, user, деактивированная и т.д.), что это состояние отображается в ATR карты.

Единственное чему нужен ATR это сам декодер.. Если этот байт читает не просто как случайный исторический байт, а как байт для проверки на статус карты, то может и реагирует соответственно..
- Спасибо
ctv-diss.txt
(106.06 КБ ~ Скачиваний: 6)
Жалоба Записан

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #204: Понедельник 18 Октября 2021, 01:13:30 »
Цитата(Shurik406 от Воскресенье 17 Октября 2021, 19:08:19)

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

Для декодера этот байт - это скорей всего один из исторических байт и не более. Он на него не обращает внимание.
Этот байт был для того софта, которым персонализировались карты спутниковым оператором. Т.е. для процесса выпуска карт.

Подумал(a) и добавил(a): Понедельник 18 Октября 2021, 01:36:01

Код: [Выделить]

jsr sub_4F4D <- принять CLA карточной команды
sta $2B <- положить его по адресу $2B
ldx #$2C ; ',' <- читать строку байт и укладывать ее с адреса $2C
lda #4 <- длиной 4 байта
jsr sub_5058 <- чтение строки байт, в данном случае INS P1 P2 P3
lda $2B <- CLA карточной команды
cmp #$DB ; '�' <- CLA случаем не DB ?
bne loc_4159
brclr 3, $22, loc_4198 <- если CLA = DB и мы глитчем занулили $22, то прыг на операционку
loc_4159: ; CODE XREF: sub_4BF9-AA5j
brclr 4, $22, loc_4166 <- бит $22.4 нулевой, так-что прыг (где он может быть выставлен не смотрел)
lda $2C <- INS карточной команды
and #$F0 ; '�'
cmp #$F0 ; '�'
beq loc_418C
bclr 4, $22
loc_4166: ; CODE XREF: sub_4BF9:loc_4159j
clrx
loc_4167: ; CODE XREF: sub_4BF9-A6Fj
lda $E010, x
and #$F0 ; '�'
cmp #$E0 ; '�' <- аппликация точно есть ?
bne loc_4186
lda $E010, x <- ст.байт адреса точки входа аппликации
sta $29
lda $E011, x <- мл.байт адреса точки входа аппликации
sta $2A
lda #$CC ; '�' <- первый байт инструкции процессора jmp hilo
sta $28 <- доформировали в ОЗУ инструкцию jmp hilo
jmp $28 <- jmp на jmp на точку входа аппликации в EEPROM
; END OF FUNCTION CHUNK FOR sub_4BF9
; ---------------------------------------------------------------------------
bset 7, 1
stop
; ---------------------------------------------------------------------------
clr 1
rts
; ---------------------------------------------------------------------------
; START OF FUNCTION CHUNK FOR sub_4BF9
loc_4186: ; CODE XREF: sub_4BF9-A8Bj
incx
incx
cpx #4 <- аппликаций в EEPROM может быть две
bcs loc_4167 <- если первой нет, посмотрим вторую
loc_418C: ; CODE XREF: sub_4BF9-A97j
brset 4, $23, loc_4198
lda $2B
beq loc_4198
bset 1, $9E
jmp sub_5070
; ---------------------------------------------------------------------------
loc_4198: ; CODE XREF: sub_4BF9-AA3j
; sub_4BF9:loc_418Cj ...
clr $2B <- нулит CLA карточной команды, он больше не интересует
lda $2C <- INS карточной команды
bsr sub_41A1 <- обработать карточную команду INS операционки
jmp loc_40FE
; END OF FUNCTION CHUNK FOR sub_4BF9
; =============== S U B R O U T I N E =======================================
sub_41A1: ; CODE XREF: sub_4BF9-A5Dp
; Тут они карточные команды операционки целой толпой
; FUNCTION CHUNK AT 4256 SIZE 000000C0 BYTES
; FUNCTION CHUNK AT 4335 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 436F SIZE 00000032 BYTES
; FUNCTION CHUNK AT 43A4 SIZE 00000057 BYTES
; FUNCTION CHUNK AT 4462 SIZE 0000009A BYTES
; FUNCTION CHUNK AT 4521 SIZE 00000087 BYTES
; FUNCTION CHUNK AT 45B4 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 45E3 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 4649 SIZE 000000A3 BYTES
; FUNCTION CHUNK AT 46F8 SIZE 0000003B BYTES
; FUNCTION CHUNK AT 4736 SIZE 0000004F BYTES
; FUNCTION CHUNK AT 47B8 SIZE 0000016D BYTES
; FUNCTION CHUNK AT 4946 SIZE 000000C8 BYTES
; FUNCTION CHUNK AT 4A1E SIZE 0000001C BYTES
; FUNCTION CHUNK AT 4A5F SIZE 000000AB BYTES
; FUNCTION CHUNK AT 4B5A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 4B9D SIZE 00000044 BYTES
; FUNCTION CHUNK AT 4D00 SIZE 0000009F BYTES
; FUNCTION CHUNK AT 4DC2 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 4E15 SIZE 00000036 BYTES
; FUNCTION CHUNK AT 4F19 SIZE 00000034 BYTES
; FUNCTION CHUNK AT 57B4 SIZE 0000000B BYTES
; -----------------------------------------

Ну так фуле тут может быть не понятно ?
Сказали Спасибо: kurag, balton, lift-man, Shurik406
« Последнее редактирование: Понедельник 18 Октября 2021, 01:39:42 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

- Начинаю писать
- 232
- 488 раз
- 58W |-----| 55E
  Много чего
  UK

##### Иформация о Eurocrypt (помните такое?)

« Ответ #205: Понедельник 18 Октября 2021, 17:30:42 »
Ух ти - вот это вот интересно! Т.е. что бы перепрыгнуть на ПО в ROMе, надо что бы 3й бит (считая с нуля) в регистре 22 = 0 и CLA = DB.
Этот CLA принимает вот эти INSтрукции: B2, B4, BA, DA, D2, D6, D4, D8, DC, E0, A2, A4, 20, 22, 24, 26, 28, F0, F2, B0, D0 и 50... Нихрена себе.
Теперь надо расковырять что из каждых INS делает и какие данные они принимают. Это возьмет долгое время... Еще надо найти точку в карте с ATR 24 который поставит/сотрет 3й бит в $22.
Кстати 00 я никак опять не выбью на карте с ATR 25, но получается накинутся на 84 - должно подойти по крайней мере что бы перепрыгнуть в ROM.
Еще - в регистре 22 проверяются в ROMe биты 2, 3, 4 и 7. Может быть аппликация в EEPROMe что-то еще проверяет там - пока не смотрел.
Как только проявится какая комманда позволить переписать EEPROM в назначеном адресе, тогда можно будет починить карту. Может быть даже у этих комманд есть возможность и вычитать EEPROM - это надо сделать первым делом.
Сказали Спасибо: Ethereal
Жалоба Записан

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #206: Понедельник 18 Октября 2021, 18:05:42 »
Ну просто праздник какой-то. Shurik406 написал исключительно умных и правильных мыслев.
Да, это вот такая вот идея мне пришла вдруг в голову - раз ты поднасрал в аппликацию, которая похоже уже не годится вирус под видом данных в ОЗУ засасывать, может направить лыжи в операционку в ROM-е ? Он-то покоцаться никак не может. Глянул бегло в дизасм ROM-а, глянул в твой лог - батюшки светы, а у тебя УЖЕ на готово точка найдена, которая в эту операционку отправит. И главное все сходится.
Отсюда мораль - логи надо изучать щательно, если вместо 8C вдруг нолик вылез надо хотя бы немножко головой потумкать что это может значить. Потому-что это может значить такое, что это вам не в тапки ссать.
Короче, я раньше таким методом никогда не действовал и потому мне самому интересно. Это ведь новый метод и надо им попробовать. И должен быть даже проще в реализации, чем устроить глюк с вылетом не куда попало, а на вирус. Надо только ROM подразобрать. Уже начал, продвигаюсь по нему потихоньку.
Пока такое впечатление, что его писал именно тот программист, что после ПО Виаксесс-карты писал. Из-за нехватки ОЗУ он использует переменные в нескольких смыслах. Сначала в одном, а когда в этом смысле переменная больше не нужна дальше уже в другом. Например
Цитата(Shurik406 от Воскресенье 17 Октября 2021, 19:08:19)

> clr $2B <- нулит CLA карточной команды, он больше не интересует

Класс карточной команды проверен, значит в этом смысле переменная больше не нужна, ну значит она пошла в дело уже в другом смысле. Так вот сочетания этих объединенных смыслов в разных переменных что-то мне напоминают.
А и в самом деле - 128 байт ОЗУ, в котором надо еще и место оставить под стек сами по себе сформируют определенный стиль программирования крейзовый.
Сказали Спасибо: kurag, balton, skad163, lift-man, 08floda, Shurik406
Жалоба 178.19.253.189

#### Shurik406

- Начинаю писать
- 232
- 488 раз
- 58W |-----| 55E
  Много чего
  UK

##### Иформация о Eurocrypt (помните такое?)

« Ответ #207: Понедельник 18 Октября 2021, 18:58:55 »
Вот только что попробовал перепрыгнут, но видимо этого не делает.
Вот на угубленной карте...
TX Data : 09 0E 03 01 20 11 3D 09 8F 00
RX Data : 09 10 3F 6C 00 00 24 A0 30 A7 58 00 00 01 01 00
90 00
Running code in ROM...
TX Data : 0A 0E 03 C4 DB 00 00 00 00 8F 00
RX Data : 09 0F 00 00 00 24 A0 30 A7 58 00 00 01 01 8C 90
00
TX Data : 09 0E 03 01 20 11 3D 09 8F 00
RX Data : 09 10 3F 6C 00 00 24 A0 30 A7 58 00 00 01 01 00
90 00
Running code in ROM...
TX Data : 0A 0E 03 C4 DB B4 00 00 00 8E 00
RX Data : 0A 0F FF F8 6C 00 00 24 A0 30 A7 58 00 00 01 01
8C
т.е. вроде-бы натыкается на аппликацию в EEPROMe..
А вот на карте CTV..
TX Data : 09 0E 03 01 20 16 B8 09 8F 00
RX Data : 09 10 3F 6C 00 00 25 A0 30 A7 58 00 00 01 01 80
90 00
Running code in ROM...
TX Data : 0A 0E 03 C4 CA B8 00 00 00 81 00
RX Data : 0A 02 B8 90
Квитанция B8, опять намекает на то что исполняется код в EEPROMe, а не в ROMe. Ведь там нет инструкции B8.
- Спасибо
Жалоба Записан

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #208: Вторник 19 Октября 2021, 03:14:33 »
Цитата(Shurik406 от Понедельник 18 Октября 2021, 18:58:55)

> А вот на карте CTV..
> TX Data : 09 0E 03 01 20 16 B8 09 8F 00
> RX Data : 09 10 3F 6C 00 00 25 A0 30 A7 58 00 00 01 01 80
> 90 00
> Running code in ROM...
> TX Data : 0A 0E 03 C4 CA B8 00 00 00 81 00
> RX Data : 0A 02 B8 90

Если CLA = CA то и должно уйти на аппликацию в EEPROM
lda $2B <- CLA карточной команды
cmp #$DB <- CLA случаем не DB ?
bne loc_4159
brclr 3, $22, loc_4198 <- если CLA = DB и мы глитчем занулили $22, то прыг на операционку
loc_4159:

Подумал(a) и добавил(a): Вторник 19 Октября 2021, 03:18:13

Цитата(Shurik406 от Понедельник 18 Октября 2021, 18:58:55)

> Вот только что попробовал перепрыгнут, но видимо этого не делает.
> Вот на угубленной карте...
> TX Data : 09 0E 03 01 20 11 3D 09 8F 00
> RX Data : 09 10 3F 6C 00 00 24 A0 30 A7 58 00 00 01 01 00
> 90 00

Как-нибудь да обязательно делает. Но для этой карты у нас точного ROM нет. Мы проводим аналогии известного ROM с неизвестным, но ожидаемо похожим, они не обязательно будут стопудовые.

Подумал(a) и добавил(a): Вторник 19 Октября 2021, 03:27:29

Класс DD проверил ? Зачем-то он отвергается аппликацией CTV
Сказали Спасибо: kurag, balton, skad163, lift-man
« Последнее редактирование: Вторник 19 Октября 2021, 03:27:29 от Ethereal »
Жалоба 178.19.253.189

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #209: Вторник 19 Октября 2021, 09:32:50 »
Класс 00 тоже относится к операционке и не различается в обработке от класса DB :
Код: [Выделить]

lda CLA_2B
cmp #$DB
bne loc_4159
brclr 3, $22, loc_4198
loc_4159:
...
lda CLA_2B
beq loc_4198
bset 1, ERR_9E ; 6E 00
jmp Answer_5070
loc_4198: clr CLA_2B
lda INS_2C
bsr sub_41A1 ; Обработка карточной команды INS операционки

правда в ROM CTV этот класс воспринимается только если в EEPROM нету аппликаций

Подумал(a) и добавил(a): Вторник 19 Октября 2021, 10:57:00

Ай, операционка делалась с оглядкой на ISO 7816 part 4 и это сразу дало подсказку какую карточную инструкцию смотреть. Имеем в этом стандарте
ISO 7816-4 Section 6 - Basic Interindustry Commands
6.1 READ BINARY
CLA As defined in 5.4.1
INS ‘B0’
P1-P2 See text below
Le field Number of bytes to be read
...
If bit8=0 in P1, then P1||P2 is the offset of the first byte to be read in data units from the beginning of the file.
Итого
CLA B0 P1 P2 P3
- чтение со смещения EEPROM P1:P2 количеством 0<P3<=$20 байт.
Короче весь EEPROM у карты CTV сдампить это
CLA B0 00 00 20
CLA B0 00 20 20
CLA B0 00 40 20
CLA B0 00 60 20
...
CLA B0 0B A0 20
CLA B0 0B C0 20
CLA B0 0B E0 20
Интересно, что в коде зачем-то сделаны исключения для
CLA B0 FF FC 04
и
CLA B0 FF FC 08
Карточная команда
CLA B0 FF FC 04
должна прочитать смещения EEPROM $C..$F а там состояние карты показываемое в ATR
Код: [Выделить]

E000 : 00 80 B8 38 00 2C 00 60 A7 58 00 00 00 00 8C 00
^^^^^^^^^^^

а команда
CLA B0 FF FC 08
должна прочитать последние 8 байт EEPROM , а там
Код: [Выделить]

EBF0 : FF 80 08 00 01 6B 00 6B 00 00 00 00 00 00 00 00
^^^^^^^^^^^^^^^^^^^^^^^

ни хрена кроме нулей нет. Возможно это какая-то security-зона. А может какой-нибудь шмуч (ключ).
Хотя те-же самые места по идее можно прочитать
CLA B0 00 0C 04
и
CLA B0 0B F8 08
Видимо эти перенаправления адресов, ну наверно мы тут имеем место с обеспечением совместимости с какой-то предыдущей картой, о которой мы и слыхом не слыхивали.
Сказали Спасибо: kurag, 08floda, Shurik406
« Последнее редактирование: Вторник 19 Октября 2021, 10:57:48 от Ethereal »
Жалоба 178.19.253.189

Страницы: « 1 ... 19 20 21 22 23 ... 44 » Вверх
« предыдущая тема следующая тема »
Перейти в:

### Кто онлайн

Просматривают тему:
Ethereal и 1 Гость

### Быстрый ответ

В быстром ответе можно использовать BB-теги и смайлы.

Предупреждение: в данной теме не было сообщений более 120 дней.
Если не уверены, что хотите ответить, то лучше создайте новую тему.

- Базовые
- Дополнительные

[дополнительные смайлы]
Ошибка во время нажатия Спасибо
Спасибо...

Загружается...