закрыть X

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

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

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

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

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

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

#### Shurik406

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

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

« Ответ #340: Среда 24 Ноября 2021, 14:47:44 »
Цитата(Shurik406 от Вторник 23 Ноября 2021, 14:43:13)

> ВРОДЕ ТАКОГО. Т.е. я излагаю идею, а ты ее детализуешь с учетом промежуточных результатов, их не зная написать окончательный скрипт-то невозможно. Потому-что промежуточные результаты заставляют скрипт немного изменить. А точку влета снаряда ты даже сейчас не назвал, я только вижу что она среди NOP-ов.

Вчера был напряженный день и голова совсем не соображала. Просто тупо засунул скрипт и ничего не менял (как вам уже и ясно было).
Короче вот такие эксперименты были.
Код: [Выделить]

TX Data : 20 0E 03 C4 CA 24 09 A0 10 80 CF
TX Data : 9D 9D 9D 9D 9D 9D A6 77 CD 4F C6 B6 87 20 F7 9D
TX Data : 20 00 00 09 0F 00
RX Data : 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77
77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77
77 77 77 77 77 77 77 77 77 77 77 77 77 ...

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

TX Data : 20 0E 03 C4 CA 24 09 A0 10 80 CF
TX Data : 9D 9D 9D 9D 9D 9D 9D 9D CD 4F C6 B6 87 20 F9 9D
TX Data : 20 00 01 09 0F 00
RX Data : 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
31 31 31 31 31 31 31 31 31 F1 E6 31 31 33 31 3F
31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31...

Из нижнего видно что вирус, как минимум проходит 2й байт. Если аккумулятор без INCA = 31, то первый байт из карты с INCA x 7 = 38.
Код: [Выделить]

TX Data : 9D 4C 4C 4C 4C 4C 4C 4C CD 4F C6 B6 87 20 F7 9D
TX Data : 20 00 00 09 0F 00
RX Data : 38 3A 3C 3E 40 42 44 46 48 4A 4C ...

Решил проверить, дейтвительно-ли стирает акк... Ну тут очевидно что да.
Код: [Выделить]

TX Data : 20 0E 03 C4 CA 24 09 A0 10 80 CF
TX Data : 9D 9D 9D 9D 9D CD 4F C6 3F 01 CD 4F D4 20 F6 9D
TX Data : 20 00 00 09 0F 00
RX Data : 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

А вот здесь что-то не понял. Почему первый байт B9? Значит в акк. сидел B1 от какой-то предыдущей операции... Или пушка стреляла в точку даже до вируса в ОЗУ, илполняя те инструкции которые там.
Код: [Выделить]

TX Data : 20 0E 03 C4 CA 24 09 A0 10 80 CF
TX Data : 4C 4C 4C 4C 4C 4C 4C 4C CD 4F C6 B6 87 20 F7 9D
TX Data : 20 00 01 09 0F 00
RX Data : B9 BB BD BF C1 C3 C5 C7 C9 CB CD CF D1 D3 D5 D7
D9 DB DD DF E1 E3 E5 E7 E9 EB ED EF F1 F3 F5 F7
F9 FB FD FF 01 03 05 07 09 0...

Но... наивность меня наказала. Решил посмотреть что будет вот так...
Код: [Выделить]

TX Data : 05 0E 03 01 8F 00
RX Data : 05 10 3F 6C 00 00 25 A0 30 A7 58 00 00 01 01 8C
90 00
TX Data : 20 0E 03 C4 CA 24 09 A0 10 80 CF
TX Data : 4C 9D 9D 9D 9D 9D 9D 9D CD 4F C6 B6 87 20 F9 9D
TX Data : 20 00 01 09 0F 00
RX Data : 9D FF FF F8 1F 01 24
TX Data : 05 0E 03 01 8F 00
RX Data : 05 10 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C <<<< покацалось здесь - предпоследний байт ATR теперь 81 вместо 01
90 00
TX Data : 20 0E 03 C4 CA 24 09 A0 10 80 CF
TX Data : 4C 9D 9D 9D 9D 9D 9D 9D CD 4F C6 B6 87 20 F9 9D
TX Data : 20 00 01 09 0F 00
RX Data : 1F 01 CC <<< и выдан CC

И капец... Карта теперь выдает только CC в бесконечном цикле после ATR.
Код: [Выделить]

RX ATR : 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C 90 00
TX Data : CA A4 04 00 03
RX Data : CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC

Видимо начало аппликации тоже крякнуто, но по крайней мере не первые 16 байтов если смотреть на последний байт 8C.
Код: [Выделить]

RX ATR : 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C 90 00
TX Data : 00 DD 00 00 00
RX Data : CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC

Ответь только после 5 байтов.
Код: [Выделить]

RX ATR : 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C 90 00
TX Data : 00 DD 00 00
RX Data :

Теперь никакой вирь туда не посадишь.
Насколько понимаю - то что-бы попасть на ОС глитчем как и в черной карте TV2, надо найти 3 глитча.
1) Что бы в ATR 3й бит последнего байта был ноль ($22.3). Это есть.
Код: [Выделить]

TX Data : 09 0E 03 01 20 16 C0 09 8F 00
RX Data : 09 10 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 00
90 00
TX Data : 09 0E 03 01 20 16 C0 09 8F 00
RX Data : 09 10 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 00
90 00
TX Data : 09 0E 03 01 20 16 C0 09 8F 00
RX Data : 09 10 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C
90 00
TX Data : 09 0E 03 01 20 16 C0 09 8F 00
RX Data : 09 10 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 00
90 00
TX Data : 09 0E 03 01 20 16 C0 09 8F 00
RX Data : 09 10 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C
90 00

2) Что-бы вторая загрузка $22.3 тоже прошла неудачно.
ROM:4123 C6 E0 0E lda $E00E
ROM:4126 A4 8F and #$8F ; 'Å'
ROM:4128 BA 22 ora $22
ROM:412A B7 22 sta $22
ROM:412C CD 4F CC jsr sub_4FCC
3) Что-бы при проверке сенсора не зависала:
TESTsecur_4FCC: lda $1
and $E021
bne *
rts
Или как-то стереть $1... Эххх... я практически каждую карту над которой мучился коцавал, но это уже посерьезнее...
- Спасибо
Жалоба Записан

#### Ethereal

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

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

« Ответ #341: Среда 24 Ноября 2021, 15:00:15 »
Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> TX Data : 9D 4C 4C 4C 4C 4C 4C 4C CD 4F C6 B6 87 20 F7 9D
> TX Data : 20 00 00 09 0F 00
> RX Data : 38 3A 3C 3E 40 42 44 46 48 4A 4C ...

Тут ты в цикл зачем-то два раза inca захватил. Поэтому при каждом обороте число увеличивается на два.
Но в целом видно, что управление или попадает во второй байт вируса или выкатывается на первый.

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 15:06:59

Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> Решил проверить, дейтвительно-ли стирает акк...

А в дизассемблерный листинг посмотреть или в эмуляторе не было бы менее рисково ?
Я так в эмуле подсмотрел, что акк стирает.

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 15:17:30

Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> А вот здесь что-то не понял. Почему первый байт B9?

Что тут не понятного ? Запуск вируса произошел совершенно по другому. Не так как в прошлый раз.
Предположим, что управление до вируса шлепало по нулям.
Тогда оно могло выкатиться на вирус так
00 9D 4С
или так
00 00 9D
В случае 00 00 9D это brset 0,0,куда_то_назад , т.е. прыжок куда_то_назад если линия данных в единице,
а в случае 00 9D 4C это brset 0,$9D,куда_то_вперед. Видимо было первое и управление отбрасывало назад и оно по новой докатывалось до вируса, теперь уже с другим значением аккамулятора.
В этот момент у тебя должно было екнуть сердце как у сапера - щас подорвусь.
И прийти в голову сочетание - СИНХРОНИЗАТОР ВЫКАТА.
Если у тебя управление не влетает в вирус, в середину nop-ов, а выкатывается на его начало, в начале вируса нужен синхронизатор, чтобы при любом выкате произошла синхронизация с началами команд твоего вируса. Выкатов-то может быть три : За два байта до вируса, за байт до вируса и на начало вируса. Потому-что команды у процика одно, двух и трехбайтные. Чтобы во всех трех случаях был ажур. Вместо этого :

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 15:20:33

Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> Но... наивность меня наказала. Решил посмотреть что будет вот так...
> TX Data : 4C 9D 9D 9D 9D 9D 9D 9D CD 4F C6 B6 87 20 F9 9D

Что значит посмотреть ? Ты карту уже победил. А посмотреть - это возможно проиграть.
План был полечить, а не посмотреть.
Если управление выкатывалось за два байта до вируса, то вышло вот что
00 00 4C
т.е. brset 0.0,ВПЕРЕД !!! Управление перебросило через вирус вперед и оно пошлепало куда попало. Ну и спалило карту. И все мои рассуждения про вирус с засосом и лечением оказались ни к чему.

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 15:28:54

Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> Или пушка стреляла в точку даже до вируса в ОЗУ, илполняя те инструкции которые там.

Именно. Вот из этого разве стало не ясно, что управление выкатывается на начало вируса.
Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> TX Data : 9D 4C 4C 4C 4C 4C 4C 4C CD 4F C6 B6 87 20 F7 9D
> TX Data : 20 00 00 09 0F 00
> RX Data : 38 3A 3C 3E 40 42 44 46 48 4A 4C ...

На первый или второй байт. 38 - 31 = 7 а значит все до единого inca выполнились. Значит или на первый или на второй байт. А тогда первый байт в вирусе критичен, поскольку он может быть отработан процессором как хвост команды перехода со смещением прыжка.

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 15:32:59

Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> Видимо начало аппликации тоже крякнуто, но по крайней мере не первые 16 байтов если смотреть на последний байт 8C.

Который не в начале аппликации, а в OTP-зоне, насколько помню.

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 15:39:52

Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> Или как-то стереть $1... Эххх... я практически каждую карту над которой мучился коцавал, но это уже посерьезнее...

Так не надо мучиться. Надо посмотреть Аллегро с огнем и работать с картой как со смесью инопланетного артефакта и мины с самоликвидатором. Одна ошибка и все. Какие в задницу "посмотреть что будет" ? Вышел бах, подумал сапер, пролетая по воздуху.
Как только заработало - аккуратная, по шажкам модификация того, что работает.
С обдумыванием каждого изменения.

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 15:40:51

Ну лечи теперь через ОС, что я могу сказать. Расстроился совсем. Думал поставить последнюю точку - все карты считаны и все вылечены. Рассказал как это сделать. Однако фиг, а не последняя точка.

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 15:50:40

Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> И капец... Карта теперь выдает только CC в бесконечном цикле после ATR.
> Код: [Выделить]
> RX ATR : 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C 90 00
> TX Data : CA A4 04 00 03
> RX Data : CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
> CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC
> CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC

Откуда CC вроде бы ясно. Управление прыгает на аппликацию с CC в аккамуляторе
lda #$CC
sta $28
jmp $28
И почему-то получается вывод CC в цикле. Но с чего бы ему быть бесконечным ? Ты не дождался окончания цикла, я так полагаю.

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 15:52:21

Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> Или как-то стереть $1...

Сенсор проверяется только при выводе. Он не проверяется при вводе. Правда вывод будет обязательно ибо должна выводиться квитанция INS. И если сенсор сработамши квитанции ты не получишь. А ввод тела команды только после вывода квитанции. Но зависон SEND от сенсора это bra на себя и должен выбиваться после длинной паузы, только фазу глитча подобрать. Вроде бы.
Сказали Спасибо: balton, DIverSA.T, skad163, sankr, lift-man, Shurik406
« Последнее редактирование: Среда 24 Ноября 2021, 16:19:38 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

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

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

« Ответ #342: Среда 24 Ноября 2021, 16:31:37 »
Ну что я могу сказать... вот так не подумал я и понеслось.
Цитата

> Который не в начале аппликации, а в OTP-зоне, насколько помню.

По моему первые 32 байта в OTP.
Цитата

> И почему-то получается вывод CC в цикле. Но с чего бы ему быть бесконечным ? Ты не дождался окончания цикла, я так полагаю.

Да, подождал 11 секунд и выбил целых 8192 байта (все СС).
Меня с завтрешнего дня дома не будет, так что искать глитчи получится только на следующей неделе. Хотя стол рабочий открыт если хотите ее потыкать...
Сказали Спасибо: balton, Ethereal, skad163, sankr, lift-man
Жалоба Записан

#### Ethereal

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

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

« Ответ #343: Среда 24 Ноября 2021, 21:33:45 »
Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> И капец... Карта теперь выдает только CC в бесконечном цикле после ATR.

Ты сам себя путаешь. Она не выдает CC в цикле после ATR.
Она после ATR ждет на прием заголовок команды CLA INS P1 P2 P3. 5 байт. 5 байт !!!
И только после приема заговка бесконечно выдает CC
Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> Теперь никакой вирь туда не посадишь.

Почему не посадишь ? 5 байт !!!
Цитата(Shurik406 от Среда 24 Ноября 2021, 14:47:44)

> Или как-то стереть $1...

Ну значит 2 байта уйдут на 3F 01 , т.е. clr 1 . Но останутся 3 байта. 3 байта !!!

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 21:42:38

Раз у нас аппликация убита так, что выдает бесконечно содержимое аккамулятора
при прыжке на нее, такая была догадка, чтр это содержимое аккамулятора
Так воспользуемся этим !!
В качестве заголовка команды CLA INS P1 P2 P3 подадим код
lda #$55
jmp $E068
т.е. A6 55 CC E0 68
Ну раньше аппликация имела точку старта $E068. Туда и прыгаем.
Раз она там теперь выдает байт бесконечно, это нам удобно, это наглядный признак запуска.
Ищем точку глитча при которой карта разродится не бесконечным CC ... а бесконечным 55 ...
И находим :
Код: [Выделить]

TX Data : B0 86
RX Data :
TX Data : 10 0E 03 01 8F C4 A6 55 CC E0 68 20 03 30 09 BF
00
RX Data : 10 50 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C
90 00 55 55 55 55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
55 55

Дальнейшее, как говориццо, очевидно.
Мы сделали ход E2-E4 и карта сдалась, т.к по ее рассчетам она получает мат на 1079-м ходу.

Подумал(a) и добавил(a): Среда 24 Ноября 2021, 21:52:01

Управление очевидно попадало на самый первый байт заголовка команды.
Но сначала установим сопутствующие обстоятельства.
Ничего не трогаем только меняем заголовок.
На такой
4C 4C CC E0 68 , т.е.
inca
inca
jmp $E068
Код: [Выделить]

TX Data : B0 86
RX Data :
TX Data : 10 0E 03 01 8F C4 4C 4C CC E0 68 20 03 30 09 BF
00
RX Data : 10 50 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C
90 00 CE CE CE CE CE CE CE CE CE CE CE CE CE CE
CE CE CE CE CE CE CE CE CE CE CE CE CE CE CE CE
CE CE CE CE CE CE CE CE CE CE CE CE CE CE CE CE
CE CE CE CE CE CE CE CE CE CE CE CE CE CE CE CE
CE CE

Итого, управление попадало на первый байт заголовка с $CC в аккамуляторе
Теперь на такой
9D 9F CC E0 68 , т.е.
nop
txa
jmp $E068
Код: [Выделить]

TX Data : B0 86
RX Data :
TX Data : 10 0E 03 01 8F C4 9D 9F CC E0 68 20 03 30 09 BF
00
RX Data : 10 50 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C
90 00 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02

Итого, управление попадало на первый байт заголовка с 02 в регистре X
Теперь на такой
9D 9E CC E0 68 , т.е.
nop
tsa
jmp $E068
Код: [Выделить]

TX Data : B0 86
RX Data :
TX Data : 10 0E 03 01 8F C4 9D 9E CC E0 68 20 03 30 09 BF
00
RX Data : 10 50 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C
90 00 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
7F 7F

Итого, управление попадало на первый байт заголовка с $7F в
указателе стека, т.е. с пустым стеком.
А почему именно так ? Почему именно такой комплект ?
a = $CC
x = $02
sp = $7F (пустрой стек)
О чем это нам говорит ? Ась ?
А ведь именно с таким комплектом регистров код из ROM прыгает на аппликацию в EEPROM.
Только он в нашем случае прыгнул и недопрыгнул. Угодил на первый байт заголовка команды.
А почему именно так ? Почему он угодил именно сюда ?
Сказали Спасибо: balton, DIverSA.T, Shurik406
Жалоба 178.19.253.189

#### Ethereal

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

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

« Ответ #344: Четверг 25 Ноября 2021, 04:37:24 »
А это все потому, что аппликация запускается так
lda $E010,x
sta $29
lda $E011,x
sta $2A
lda #$CC
sta $28
jmp $28
Из-за отсутствие в системе команд перехода по заранее неизвестному
адресу, в ОЗУ по адресу $28 формируется команда
jmp $HILO
или
28: CC HI LO
, где HILO - адрес точки старта аппликации
происходит прыжок на нее
jmp $28
и уже эта команда прыгает на аппликацию.
Происходит все это с таким комплектом в регистрах
a = $CC
x = 2
sp = $7F (стек пуст)
А где располагается заголовок CLA INS P1 P2 P3 в ОЗУ ?
Обсмеетесь - сразу за этой командой :
2B : CLA INS P1 P2 P3
Или итого
28 : CC HI LO CLA INS P1 P2 P3
Иными словами если не дать глитчем исполниться команде jmp $HILO
по адресу $28, то управление выедет как раз на CLA INS ...
и именно с
a = $CC
x = 2
sp = $7F (стек пуст)
Вот это и происходит ! Т.е. создатель карты нечаянно сам соорудил
конструкцию, которая дает последний шанс вылечить убитую карту.
Ведь прием заголовка команды произовидится кодом в ROM, а ROM
(в отличие от EEPROM) убить невозможно. Вот этим последним
шансом и воспользуемся.

Подумал(a) и добавил(a): Четверг 25 Ноября 2021, 05:03:33

А дальше Пушкин наше фсе ! Три карты, только три карты !
Три байта, только три байта !
Но зато мы можем куда-нибудь прыгнуть. Куда ?
Предположим, что внутри карты не все в EEPROM убито, тогда в
обработчике карточной команды 87 02 есть
INS_8702_E73F: lda $2F
cmp #3
beq loc_0_E748
jmp loc_0_E7F5
loc_0_E748: jsr sub_0_E6BD ;Receive body to $40..
Сюда будем прыгать, сюда
loc_0_E748: jsr sub_0_E6BD ;<- Сюда !!!
Потому-что эта подпрограмма засасывает в ОЗУ с адреса $40
строку в P3 байт !!! И если заголовок команды мы сделаем таким
3F 01 CC E7 48
т.е
clr 1 ; Обнуление сенсоров, чтобы подпрограмма SEND_4FD4 не вешалась
jmp $E748
то тогда выйдет P3 = $48 (младший байт адреса прыжка).
А что произойдет, если с адреса $40 мы примем и уложим $48 байт ?
А мы накроем стек и даже 8 байт лишку. И накрывая стек подменим
адрес возврата в стеке, чтобы по rts по окончании приема строки
управление отпрыгнуло на наш код, который среди этих $48 байт
тоже будет.
Ну так делаем. Для начала код положим, чтобы вывел дамп ОЗУ :
Код: [Выделить]

TX Data : B0 86
RX Data :
TX Data : 11 0E 03 01 8F C4 3F 01 CC E7 48 20 03 30 09 80
04 00
RX Data : 11 11 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C
90 00 01
TX Data : 13 CF 5F F6 CD 4F C6 5C 26 F9 20 FE 9D 9D 9D 9D
9D 9D 04 00
RX Data : 13 00
TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D
9D 9D 04 00
RX Data : 13 00
TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D
9D 9D 04 00
RX Data : 13 00
TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 00 00
00 40 04 00
RX Data : 13 00
TX Data : 0C 0E 03 C7 1E 01 8E 00 00 00 08 00 0F
RX Data : CF 08 08 C0 08 00 FE 3F 88 88 88 88 88 88 88 88
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
90 00 8C 00 D6 E0 60 81 88 47 00 3F 01 CC E7 48
FF 00 08 00 01 00 00 24 00 00 00 00 00 68 0B F0
5F F6 CD 4F C6 5C 26 F9 20 FE 9D 9D 9D 9D 9D 9D
9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D
9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D
9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D E6 CF 00 45
1E 01 8E 00 02 FF 00 00 0B F0 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02
0C 00

Бац и все. Запуск огромного по размерам вируса, как с куста.
Вот это
Код: [Выделить]

TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 00 00
00 40 04 00
^^^^^

это и есть те байты, что накроют адрес возврата в стеке
и вызовут отпрыг по rts на адрес $40. Значение указателя стека
мы ведь знаем, а значит знаем где накрывать.
А по адресу $40 у нас будет находиться :
Код: [Выделить]

TX Data : 13 CF 5F F6 CD 4F C6 5C 26 F9 20 FE 9D 9D 9D 9D
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9D 9D 04 00

засосанный вирус выводящий дамп.
Вот эти байты
Код: [Выделить]

TX Data : 0C 0E 03 C7 1E 01 8E 00 00 00 08 00 0F
^^^^^^^^^^^^^^^^^^^^^^^

что накроют адреса $80..$87, ну я тупо посмотрел, что
по этим адресам лежало в одном из старых дампов, ну и именно
это вставил, чтобы всякие переменные не портить.
Ну и аналогично вставим вирусы, которые выведут дампы EEPROM.
Адреса E0xx :
Код: [Выделить]

TX Data : B0 86
RX Data :
TX Data : 11 0E 03 01 8F C4 3F 01 CC E7 48 20 03 30 09 80
04 00
RX Data : 11 11 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C
90 00 01
TX Data : 13 CF 5F D6 E0 00 CD 4F C6 5C 26 F7 20 FE 9D 9D
9D 9D 04 00
RX Data : 13 00
TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D
9D 9D 04 00
RX Data : 13 00
TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D
9D 9D 04 00
RX Data : 13 00
TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 00 00
00 40 04 00
RX Data : 13 00
TX Data : 0C 0E 03 C7 1E 01 8E 00 00 00 08 00 0F
RX Data : 00 80 B9 BF 00 2C 00 60 A7 58 00 00 00 00 8C 70
FF FF E0 68 20 DF 00 B8 00 00 00 00 00 00 00 E0
00 06 00 00 FE FE 00 FF 40 FF 00 00 35 96 9F 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
4C A7 9D 9D 9D 9D 9D 9D CD 4F C6 B6 87 20 F9 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 6C 00 00 25 A0 30 A7 58 00 00 01 01 8C 00 00
00 00 50 B7 50 B7 51 25 4F DA E7 06 57 E7 52 64
40 40 8E 00 00 FF 00 24 0B F0 01 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 A4 00 00 00
00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0C 00

Адреса E1xx :
Код: [Выделить]

TX Data : B0 86
RX Data :
TX Data : 11 0E 03 01 8F C4 3F 01 CC E7 48 20 03 30 09 80
04 00
RX Data : 11 11 3F 6C 00 00 25 A0 30 A7 58 00 00 01 81 8C
90 00 01
TX Data : 13 CF 5F D6 E1 00 CD 4F C6 5C 26 F7 20 FE 9D 9D
9D 9D 04 00
RX Data : 13 00
TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D
9D 9D 04 00
RX Data : 13 00
TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D
9D 9D 04 00
RX Data : 13 00
TX Data : 13 CF 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 9D 00 00
00 40 04 00
RX Data : 13 00
TX Data : 0C 0E 03 C7 1E 01 8E 00 00 00 08 00 0F
RX Data : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02
40 3F 3E 3D 3C 3B 3A 39 38 37 36 35 34 33 32 31
30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21
6C 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64
64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64
2E A6 01 B7 9C A6 80 B7 40 CD 52 4A 20 9C CD E6
BD 16 2E 14 2E B6 2D A1 01 26 03 CC E1 F3 A1 02
27 15 CC E1 0A A6 C6 B7 F1 A6 81 B7 F4 BC F1 3C
F3 26 02 3C F2 BC F1 A6 04 B7 96 BE F0 A6 00 CD
E8 28 AD E1 B7 A0 AD E7 B7 A1 AD E3 B7 A2 AE 0C
E6 58 E7 B5 E7 B7 E6 4E E7 AF E6 41 E7 A2 5A 26
EF B6 5B B7 AF A6 BB B7 94 AE 18 CD E5 FE CD E6
92 AE 0B E6 A2 E7 40 5A 26 F9 BE F0 26 03 CC E1
0A A6 25 CD E8 28 AE 0B CD E4 07 BE F0 BF FA B6
AF 20 42 A6 06 B7 96 AE 05 E6 50 E7 9F E6 53 E7
0C 00

Итого покоцанная часть EEPROM :
Код: [Выделить]

E000 : 00 80 B9 BF 00 2C 00 60 A7 58 00 00 00 00 8C 70
E010 : FF FF E0 68 20 DF 00 B8 00 00 00 00 00 00 00 E0
E020 : 00 06 00 00 FE FE 00 FF 40 FF 00 00 35 96 9F 00
E030 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E040 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E050 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E060 : 4C A7 9D 9D 9D 9D 9D 9D CD 4F C6 B6 87 20 F9 00 <- коцано
E070 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <- коцано
E080 : 00 6C 00 00 25 A0 30 A7 58 00 00 01 01 8C 00 00 <- коцано
E090 : 00 00 50 B7 50 B7 51 25 4F DA E7 06 57 E7 52 64 <- коцано
E0A0 : 40 40 8E 00 00 FF 00 24 0B F0 01 00 00 00 00 00 <- коцано
E0B0 : 00 00 00 00 00 00 00 00 00 00 00 00 A4 00 00 00 <- коцано
E0C0 : 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 <- коцано
E0D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <- коцано
E0E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <- коцано
E0F0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <- коцано
E100 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <- коцано
E110 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 <- коцано
E120 : 40 3F 3E 3D 3C 3B 3A 39 38 37 36 35 34 33 32 31 <- коцано
E130 : 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 <- коцано
E140 : 6C 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 <- коцано
E150 : 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 <- коцано
E160 : 2E A6 01 B7 9C A6 80 B7 40 CD 52 4A 20 9C CD E6
E170 : BD 16 2E 14 2E B6 2D A1 01 26 03 CC E1 F3 A1 02
E180 : 27 15 CC E1 0A A6 C6 B7 F1 A6 81 B7 F4 BC F1 3C
E190 : F3 26 02 3C F2 BC F1 A6 04 B7 96 BE F0 A6 00 CD
E1A0 : E8 28 AD E1 B7 A0 AD E7 B7 A1 AD E3 B7 A2 AE 0C
E1B0 : E6 58 E7 B5 E7 B7 E6 4E E7 AF E6 41 E7 A2 5A 26
E1C0 : EF B6 5B B7 AF A6 BB B7 94 AE 18 CD E5 FE CD E6
E1D0 : 92 AE 0B E6 A2 E7 40 5A 26 F9 BE F0 26 03 CC E1
E1E0 : 0A A6 25 CD E8 28 AE 0B CD E4 07 BE F0 BF FA B6
E1F0 : AF 20 42 A6 06 B7 96 AE 05 E6 50 E7 9F E6 53 E7

А что-же произошло ?
А Шурик шмякнул в EEPROM целиком 256 байт ОЗУ, начиная с
адреса $40 вместе со своим кривым, дурацким вирусом.
Ну и есс-но все это вылечено уже (и ID иссуера тоже).
Три байта, всего три байта !

Подумал(a) и добавил(a): Четверг 25 Ноября 2021, 05:15:46

А теперь зацените комизм ситуации.
Почему карта как безумная выдавала по кругу CC , притом бесконечно ?
А запуская аппликацию код в ROM прыгает на адрес $E068 в EEPROM
А что там лежало ?
А вот :
Код: [Выделить]

E060 : 4C A7 9D 9D 9D 9D 9D 9D CD 4F C6 B6 87 20 F9 00
^^^^^^^^^^^^^^^^^^^^^^^^^^

Шуриков кривой, дурацкий вирус и лежал.
Он и выводил содержимое аккамулятора по бесконечному кругу.
Т.е. насравши свой вирус в EEPROM Шурик умудрился его ТАМ запустить !
Сказали Спасибо: balton, DIverSA.T, Andro, skad163, sankr, lift-man, Shurik406
« Последнее редактирование: Четверг 25 Ноября 2021, 07:11:16 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

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

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

« Ответ #345: Четверг 25 Ноября 2021, 11:47:45 »
Слов нет... Вам за такую работу низкий поклон. У вас такая сильная логика и размышление - это дар просто.
Сказали Спасибо: balton, Ethereal, skad163, lift-man
Жалоба Записан

#### Ethereal

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

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

« Ответ #346: Четверг 25 Ноября 2021, 13:09:54 »
Ты проверь когда появится возможность карту в приемнике. Хочу знать что все воистину полечено.

Подумал(a) и добавил(a): Четверг 25 Ноября 2021, 14:10:31

Кстати, по поводу синхронизатора выката управления на начало вируса.
Мне ничего в голову пока не приходит кроме как ставить в начале вируса
FE
Этот FE если исполняется, это однобайтная безобидная lda ,x
А перед вирусом во всех дампах ОЗУ при запуске виря через CA24 всегда видно
0B F0
Байт F0 безобиден - это однобайтная sub ,x
А вот сочетание
0B F0 xx
опасно.
0B это brclr и во всех дампах запуска виря по адресу F0 виден ноль.
Значит это прыгающий brclr
Твою карту видимо убил прыг
0B F0 4С
поскольку это перепрыг через вирус вперед.
А если исполнится
0B F0 FE
то отпрыгнет на два байта назад на безобидные
F0 sub ,x
FE lda ,x
Так-что по видимому в данной ситуации один байт FE в начале
вируса и будет подходящим безопасным синхронизатором.
Я тебе в каталоге CTV_DEAD оставил скрипт чтения дампа EEPROM
и скрипт записи 0x20 байт в EEPROM. Последний не совсем понятно
почему надо успешно запустить три раза. Впрочем, он сам тебе
будет подсказывать по коду возврата из подпрограммы записи.
Сначала
Repeat it again (возврата не произошло, то-ли тормозит, то-ли вешается)
потом
Maybe repeat it one more time (вернуло ноль)
и наконец
Successfully done !!! (вернуло последний байт из записываемых 0x20-и , когда он не ноль)
Разбираться до конца почему так не стал, карта вылечена,
а на экспериментах может произойти всякое. Ну там OTP засрать и тогда усе.
И еще два дампа EEPROM там оставил - коцанный и леченый.
Сказали Спасибо: balton, DIverSA.T, skad163, lift-man, Shurik406
« Последнее редактирование: Четверг 25 Ноября 2021, 14:29:08 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

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

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

« Ответ #347: Пятница 26 Ноября 2021, 18:55:02 »
Цитата(Ethereal от Четверг 25 Ноября 2021, 13:09:54)

> Ты проверь когда появится возможность карту в приемнике. Хочу знать что все воистину полечено.

Да что там проверять - конечно работает! Я по быстрому - но ECM, консультация и т.д. работают.
Сказали Спасибо: balton, Ethereal
Жалоба Записан

#### stefanvl

- Прохожий
- 35
- 32 раза

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

« Ответ #348: Пятница 14 Января 2022, 17:50:23 »
Цитата(Shurik406 от Среда 15 Сентября 2021, 23:38:00)

> Вот удалось выбить ключ иссуера:
> TX Data : B0 FF
> TX Data : 05 0E 03 01 8A 00
> RX Data : 05 0B 3F 67 2F 00 11 14 00 68 90 00
> TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
> RX Data : 0A 0D 93 08 71 77 AD 52 D4 75 47 90 00
> TX Data : 1E 0E 03 C4 CA 48 00 00 0A 80 C0 94 80 C0 08 80
> TX Data : C7 00 00 00 00 00 00 00 00 22 BD 55 0A 81 00
> RX Data : 1E 05 B7 B7 48 90 00
> TX Data : 0D C4 CA B0 00 1A 09 80 20 07 A3 0A 8A 00
> RX Data : 0C B0 93 00 0A A7 F7 EA DC 22 90 00
> Забил этим ключем управляемый ключ оператора (FilmNet ID 00 28 00) и потом уже прописал сегодняшнюю дату.
> Точка глитча отличается от вашей и часто надо было сбрасывать карту вручную. Целый дамп ПРОМа и ОЗУ еще не удалось сделать.
> Кстати, откуда берет команда CA B0 выше ключ? Видимо прямо из ПРОМа, а не из ОЗУ, так как если авторизироваться ключем 01 или 02 в команде CA 48, то ключ выдается тот-же. Т.е. промазывает что стереть, вот и результат.

У меня есть карты с таким же ATR 3F 67 2F 00 11 14 00 03 68 90 00 и Микобу III M6.2 (Прошивал на Ul4s отсюда на форуме), правильно ли, что может пройти довольно много времени, прежде чем появится ключ? Я смотрю на это уже несколько часов:
TX Data : B0 FF
TX Data : 05 0E 03 01 8A 00
RX Data : 0B 3F 67 2F 00 11 00 01 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
RX Data : 0D C4 93 08 B2 62 05 D9 C2 80 90 00
TX Data : 1E 0E 03 C4 CA 48 00 00 0A 80 C0 94 80 C0 08 80
TX Data : C7 00 00 00 00 00 00 00 00 22 01 5A 09 81 00
RX Data : 05 B7 B7 48 94 00
Pause: 22015A 3F
TX Data : 05 0E 03 01 8A 00
RX Data : 05 0B 3F 67 2F 11 14 00 01 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
RX Data : 0D 0A C4 93 08 63 90 AC D3 A1 B2 9F AA 90 00
TX Data : 1E 0E 03 C4 CA 48 00 00 0A 80 C0 94 80 C0 08 80
TX Data : C7 00 00 00 00 00 00 00 00 22 01 5B 09 81 00
RX Data : 1E B7 B7 48 94 00
Pause: 22015B 3F
TX Data : 05 0E 03 01 8A 00
RX Data : 05 0B 3F 67 2F 00 11 14 00 01 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
RX Data : 0A 0D 93 08 D6 77 3B 69 EC 4B 2B A4 90 00
TX Data : 1E 0E 03 C4 CA 48 00 00 0A 80 C0 94 80 C0 08 80
TX Data : C7 00 00 00 00 00 00 00 00 22 01 5C 09 81 00
RX Data : 1E 05 B7 B7 48 94 00
unnamed.jpg
(3772.9 КБ, 4032x3024)
(просмотрено 248 раз)
я иногда получаю 90 00, но нет ключей.
Другие, которые я вижу, это 60 90, 90 04 или ничего.
Кто-нибудь может выложить полный скрипт для этой карты? Я думаю, что я могу делать что-то не так.
Спасибо за всю ценную информацию!
- Спасибо
Сказали Спасибо: balton
Жалоба Записан

#### Alexfa

- Проходил мимо
- 6
- 19 раз

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

« Ответ #349: Среда 19 Января 2022, 02:15:22 »
Если ответ 60 90 00 - значит ответ еще не готов . Карта " просит подождать".
Надо увеличить время Rx.
Сказали Спасибо: Ethereal, sankr, lift-man, stefanvl
Жалоба Записан

Страницы: « 1 ... 33 34 35 36 37 ... 44 » Вверх
« предыдущая тема следующая тема »
Перейти в:

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

Просматривают тему:
Ethereal и 0 Гостей

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

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

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

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

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

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