закрыть X

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

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

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

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

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

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

#### Shurik406

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

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

« Ответ #40: Понедельник 06 Сентября 2021, 21:01:31 »
Цитата(Ethereal от Понедельник 06 Сентября 2021, 20:14:04)

> И что будет если ты ее так заклочишь ?
> ____----____----____----____----____----____-_-_____----____----____----____----

Если каждая инструкция выполняется за один цикл, то во время короткого пульса (т.е. ускорение такта) эта инструкция не выполнится, так как будет прервана вторым коротким пульсом. Итого, проскакивает... Как то так?
Насчёт прыгания в ОЗУ, надо подумать. Наверное надо знать какие инструкции кладут что в какое место в ОЗУ... И там как то туда перепрыгнуть глитчем...
Или например комманда CA C0, которая выдает дешифрованые данные контрольных слов, которые наверняка сидят где-то в ОЗУ после вычесления. Если глюкнуть сразу после квитанции, тоже может перепрыгнет адрес в ОЗУ и окажется не там где надо. Этим методом предположительно можно вычислить какой глюк перепрыгивает Х байтов при вычитывании.
Потом забросить туда вирус и глючить до тех пор пока не увидишь свой вирус. Помоему если процедера SEND читает адрес FF, то следующий адрес будет 00?
А дальше... пока еще не додумал.
- Спасибо
« Последнее редактирование: Понедельник 06 Сентября 2021, 22:41:20 от Shurik406 »
Жалоба Записан

#### Ethereal

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

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

« Ответ #41: Понедельник 06 Сентября 2021, 22:41:36 »
Вот как работал КР1878ВЕ1 (к примеру) в его документашке ясно описано. По фронту клока происходят две вещи:
- один узел процессора выбирает очередную команду
- второй узел процессора исполняел команду выбранную на предыдущем клоке первым узлом
Очевидное решение с перекрытием процессов, позволяющее увеличить скорость процика в два раза.
Вот что произойдет тут если один из тактов клока выскочит раньше времени.
Да, второй узел исполнение команды не закончит. Но и первый не закончит выберку. А значит на следующий нормальный клок второй узел сделает что ? Начнет исполнять те сапоги в смятку, которые получились в результате недоделанной выборки команды первым узлом - какую-то левую команду.
Вот что там Сергей Скоробогатов писал:
Цитата(Ethereal от Воскресенье 05 Сентября 2021, 03:59:32)

> Там сказано про MC68HC05B6
> - double frequency clock glitch causes incorrect instruction fetch

Сказали Спасибо: balton, skad163, lift-man, pickit, Shurik406
Жалоба 178.19.253.189

#### Ethereal

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

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

« Ответ #42: Вторник 07 Сентября 2021, 09:08:44 »
Еще одну тележку кину. Она как-бы замыкает предыдущий смысл.
В этом деле нужно уметь находить выходы из замкнутых кругов.
Например, вирус жутко короток, а значит чтобы вывести им дамп
надо использовать адреса подпрограмм в штатном коде карты.
Но они станут известны только после вычитки. Замкнутый круг !
Чтобы вычитать дамп нужно знать адреса в коде, а чтобы их
знать надо иметь вычитанный дамп. Замкнутый круг !
Находим выход из замкнутого круга не мытьем так катаньем :
Код: [Выделить]

Теперь подберем точку, чтобы выколотить RAM, тем-же способом,
что я выколотил RAM к карте ViaSat Ec-M. Выколачиваю :
TX Data : B0 FF
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 C4 93 08 CC 43 E0 AB 84 7A E6 C3 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 6F 09 81 00
RX Data : 1E 05 B7 B7 48 90 00
TX Data : 0D C4 CA B0 00 1A 00 80 20 11 0E 09 0F 00
RX Data : 00 00 00 00 00 00 00 00 00 00 00 E0 AB 84 7A E6
C3 00 00 00 00 FF F4 0F 20 00 00 1E 80 00 00 00
00 00 00 00 00 00 00 91 FF F4 0E 4A B9 39 29 1F
F0 00 00 0B C5 1C D1 1C D1 1C D1 1E 1F 1B 14 19
4B CD CF CD CD CC C0 CD CD 4F 47 CD CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD 20 10 00 00 2F B0 00 1A 36 61 34 00 00 20 F8
00 00 00 1D A2 00 0E 3D C6 01 78 81 FF F4 0F 45
FF F4 0F 13 7F 00 0E 00 00 00 00 00 00 00 00 DB
AD F7 F0 CD 0B 1F B5 B6 30 D0 76 0F 47 25 34 90
10
Прорисуем красиво, дамп ОЗУ, что получился :
00 : CD CF CD CD CC C0 CD CD 4F 47 CD CD CD CD CD CD
10 : CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
20 : CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
30 : CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
40 : CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
50 : CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
60 : CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
70 : CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
80 : 20 10 00 00 2F B0 00 1A 36 61 34 00 00 20 F8 00
^^^^^ - SW1 и SW2
90 : 00 00 1D A2 00 0E 3D C6 01 78 81 FF F4 0F 45 FF
^^^^^^^^^^^ - ОЗУ-шная рутина
A0 : F4 0F 13 7F 00 0E 00 00 00 00 00 00 00 00 DB AD
^^^^^
B0 : F7 F0 CD 0B 1F B5 B6 30 D0 76 0F 47 25 34 __ 00
^^^^^^^^^^^^^^ - буфер ключа
C0 : 00 00 00 00 00 00 00 00 00 00 E0 AB 84 7A E6 C3
D0 : 00 00 00 00 FF F4 0F 20 00 00 1E 80 00 00 00 00
E0 : 00 00 00 00 00 00 91 FF F4 0E 4A B9 39 29 1F F0
F0 : 00 00 0B C5 1C D1 1C D1 1C D1 1E 1F 1B 14 19 4B
стек <---^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Черт подери !!!
И из этого дампа следует, что ПРОШИВКА В КАРТЕ FilmNet ДРУГАЯ,
ЧЕМ В КАРТЕ ViaSat !!! Ведь в стеке лежат адреса возвратов.
Причем, наверняка, среди адресов возвратов в стеке должен
быть адрес возврата из процедуры Delay в процедуре SEND.
Он должен быть тем-же самым, а получился другим !!!
Вот смотрите.
В карте 3F 67 2F 00 11 14 00 03 68 90 00 ViaSat Ec-M было :
F0 : 00 00 00 CD 1C C0 1C C0 1C C0 1E 13 1A FD 19 3D
стек <---^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
А в карте 3F 67 2F 00 11 14 00 01 68 90 00 FilmNet Ec-M теперь :
F0 : 00 00 0B C5 1C D1 1C D1 1C D1 1E 1F 1B 14 19 4B
стек <---^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Адреса близки, но РАЗНЫЕ !!!
Но дампы ОЗУ в остальном идентичны, карты глючатся одинаково
и одинаковыми Clock-глитчами и сделаны на одинаковых процессорах.
Отсюда вывод :
Карта
FilmNet Ec-M 3F 67 2F 00 11 14 00 01 68 90 00
это первый вариант Eurocrypt-M. Но видать в ней программист
наваял ошибок и в результате их исправления родился следующий
вариант
ViaSat Ec-M 3F 67 2F 00 11 14 00 03 68 90 00
Если, конечно, нигде в природе не существует где-то промежуточный
вариант с ... 02 68 90 00 в ATR.
А тогда было бы интересно считать дамп карты FilmNet, сопоставить
дампы карт FilmNet и ViaSat и по местам исправлений вычислить
ошибки, которые были наваяны программистом и после исправлены.
Не могу сказать, что знание этих ошибок пригодится на современных
картах, но кто знает - может быть ранние ошибки подкинут какую
нетривиальную мысль, полезную и сейчас.
Проблема в том, что теперь я уже не знаю адресов в карте FilmNet,
которыми можно воспользоваться в вирусе для вывода байта.
Но на помощь приходит метод аналогии. Давайте сопоставим
адреса возвратов, которые мы видим в стеках карт FilmNet и ViaSat :
FilmNet ViaSat (от какой команды адрес возврата)
19 4B 19 3D 193A: JSR SENDstr_BE_lnA
1B 14 1A FD 1AFA: JSR SEND_A
1E 1F 1E 13 1A11: BSR Delay_A
1C D1 1C C0 1CBE: JSR $97
Получается, что почти наверняка в карте FilmNet
1B11 : JSR SEND_A
И тут помогает такое обстоятельство. Эти карты требуют внешнего
высокого напряжения программирования. А значит, если его
не подавать, то они и неубиваемы. А значит, я могу и
не париться с корректным вызовом подпрограммы. Буду
читать дамп вот так :
lda $xxxx
jmp $1B11
После такого вызова будет выдан прочитанный байт, а потом
управление унесет куда попало. Да и черт с ним !!!
Карта не сгорит, а на остальное мне плевать !!!
Итак, метод вычитки готов. Осталось только найти глитч,
который запустил бы вирус.

Вот откуда взялся адрес $1B11 что фигурирует в вирусах,
упомянутых в выложенной мной вычитке
www.karelmasters.com/...
Кстати, в тележке выше упомянут буфер ключа в ОЗУ. Это еще один способ
вычитки ключей. Подсовывать интересующий нас ключ в этот буфер, просто
исполнив команду этот ключ использующую. А потом выколотить дамп ОЗУ
и на этот ключик посмотреть.
В данном случае это 0-й ключ иссуера и оказался он в ОЗУ-шком буферке
после исполнения команды CA 48 00 00 0A на иссуере.
Сказали Спасибо: balton, Renoma 11, Andro, skad163, lift-man, pickit, Shurik406
« Последнее редактирование: Вторник 07 Сентября 2021, 09:21:48 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

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

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

« Ответ #43: Вторник 07 Сентября 2021, 10:00:06 »
Цитата(Ethereal от Вторник 07 Сентября 2021, 09:08:44)

> Если, конечно, нигде в природе не существует где-то промежуточный
> вариант с ... 02 68 90 00 в ATR.

Быстрый ответ пока.. карта такая существует. У меня такая лежит от Виасата.

Подумал(a) и добавил(a): Вторник 07 Сентября 2021, 10:10:29

Видимо используя команду CAB0 можно постепенно выколотить все.
Сказали Спасибо: Ethereal, lift-man
« Последнее редактирование: Вторник 07 Сентября 2021, 10:10:29 от Shurik406 »
Жалоба Записан

#### Ethereal

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

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

« Ответ #44: Вторник 07 Сентября 2021, 10:21:18 »
Вот мне в руки не попадала.
Ну тогда я выложу потрошение другой чумовой карты - карты с кодом Viaccess PC2.3
использованной Viasat в режиме обратной совместимости с Eurocrypt-M
Те кто рассматривал код Viaccess PC2.3 видели, что в ней заготовлены два ATR -
родной Виаксессовский и дополнительный D2MAC. Так вот я потрошнул карту
в которой был активирован этот D2MAC ATR. Оказалось, что это карта
Viasat Eurocrypt-M в которой код Виаксесс окучивает СУД Еврокрипт-М
пАтАму-чтА совместим !
www.karelmasters.com/...
Сказали Спасибо: balton, Andro, skad163, lift-man, Shurik406
Жалоба 178.19.253.189

#### Shurik406

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

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

« Ответ #45: Вторник 07 Сентября 2021, 10:42:53 »
Ещё один быстрый ответ из телефона. Т.е. выходит что инструкции программы перед выполнением копируются в ОЗУ и от туда уже выполняются. А глюкнуть нужно так что бы перепргынуть до того места где находится вирус, а там уже поехали. А как глюкнуть и в каком месте...? Программный счётчик следит за адресами программы... Т.е. Адрес инструкции которая выполняется сейчас..
Можно конечно глюкать до тех пор пока не перепргынуть всю программу до конца, а там уже начнётся все с нулевого адреса - т.е. в ОЗУ.
Не знаю. Пока кирпичи потихоньку раскладываю, но плана на здание ещё нет.
- Спасибо
Сказали Спасибо: Vitek_90
« Последнее редактирование: Вторник 07 Сентября 2021, 13:06:40 от Shurik406 »
Жалоба Записан

#### Ethereal

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

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

« Ответ #46: Вторник 07 Сентября 2021, 13:42:44 »
Цитата(Shurik406 от Вторник 07 Сентября 2021, 10:42:53)

> Т.е. выходит что инструкции программы перед выполнением копируются в ОЗУ и от туда уже выполняются.

Нет не копируются. Из какого мною сказанного ты такое заключил ?
Цитата(Shurik406 от Вторник 07 Сентября 2021, 10:42:53)

> Можно конечно глюкать до тех пор пока не перепргынуть всю программу до конца, а там уже начнётся все с нулевого адреса - т.е. в ОЗУ.

Цитата(Ethereal от Понедельник 06 Сентября 2021, 22:41:36)

> Начнет исполнять те сапоги в смятку, которые получились в результате недоделанной выборки команды первым узлом - какую-то левую команду.

Код исполняется в ROM, но вдруг от удара по мозгам исполнит левую инструкцию, к примеру
bra $10,x
а x пусть в этот момент будет $55 . Что произойдет ?

Подумал(a) и добавил(a): Вторник 07 Сентября 2021, 13:54:00

Цитата(Shurik406 от Вторник 07 Сентября 2021, 10:42:53)

> А как глюкнуть и в каком месте...?

Про как я уже пол топика пропиздел и на вопрос где тоже ответил.

Подумал(a) и добавил(a): Вторник 07 Сентября 2021, 13:55:02

Цитата(Shurik406 от Вторник 07 Сентября 2021, 10:42:53)

> Программный счётчик следит за адресами программы...

У него глаза есть чтобы следить ?
Сказали Спасибо: balton, skad163, lift-man, Shurik406
« Последнее редактирование: Вторник 07 Сентября 2021, 13:55:02 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

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

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

« Ответ #47: Вторник 07 Сентября 2021, 14:54:33 »
Цитата(Ethereal от Вторник 07 Сентября 2021, 13:42:44)

> Нет не копируются. Из какого мною сказанного ты такое заключил ?

Из этого.
Цитата(Ethereal от Вторник 07 Сентября 2021, 13:42:44)

> 90 : 00 00 1D A2 00 0E 3D C6 01 78 81 FF F4 0F 45 FF
> ^^^^^^^^^^^ - ОЗУ-шная рутина

Но я перепутал. Эта как раз ваша рутина которую вы туда закинули.
C6 01 78 LDA $0178
81 RTS
А это мое декодирование вашей рутины для дампа ОЗУ
RAM dump 0D <- комманд в буффере - 13
C4 <- 5 байт карте
CA B0 00 1A 00 <- запрос на все байты из комманды CA B0
80 <- в ответ один байт
20 11 0E <- пауза
09 <- клок глитч
0F <- а вот это как раз из вашей переделаной прошивки unlooper что бы дамп выкачать
00 <- конец сессии
Цитата(Ethereal от Вторник 07 Сентября 2021, 13:42:44)

> Код исполняется в ROM, но вдруг от удара по мозгам исполнит левую инструкцию, к примеру
> bra $10,x
> а x пусть в этот момент будет $55 . Что произойдет ?

Насколько понимаю, перейдет на относитеный адрес $65. Т.е. надо стукнуть так, что бы относительный адрес оказался там, где мы хотим - например в ОЗУ?

Подумал(a) и добавил(a): Вторник 07 Сентября 2021, 14:58:45

Цитата(Ethereal от Вторник 07 Сентября 2021, 13:42:44)

> У него глаза есть чтобы следить ?

Ну я не знаю заню как грамотно это объяснить. Короче в PC сидит счетчик адреса инструкции где сейчас происходит выполнение.
Цитата(Ethereal от Вторник 07 Сентября 2021, 13:42:44)

> Про как я уже пол топика пропиздел и на вопрос где тоже ответил.

"Как" понятно, а "где" ...надо топик сначала прочитать.

Подумал(a) и добавил(a): Вторник 07 Сентября 2021, 16:05:02

Цитата(Shurik406 от Вторник 31 Августа 2021, 19:24:36)

> А когда карта делает этот incorrect instruction fetch она исполняет инструкцию процессора получающуюся от пропуска байта в той точке кода куда кинут глитч. При этом часто получаются левые инструкции
> BRA ,X
> BSR ,X
> BRA байтовое_смещение,X
> BSR байтовое_смещение,X
> которые швыряют управление не куда попало, а именно в адреса 00..FF , а там ОЗУ и там как раз лежат те 9 байт кода которые ты данными команды CA 24 предварительно положил.

Короче вот все объяснили. Буду стрелять как unlooper получу. Получится или нет, посмотрим.
Спасибо! Надо вам несколько ящиков пива выслать, а то я зайобал вас! Я наверное тут дальше буду писать, это будет для себя записы. Ну если конечно совсем заблужусь - спрошу :)
Хотелось бы еще карту с ATR 02 вытерпать - может быть там что нибудь интересное будет.
- Спасибо
Сказали Спасибо: balton, skad163, lift-man
« Последнее редактирование: Вторник 07 Сентября 2021, 16:40:16 от Shurik406 »
Жалоба Записан

#### Ethereal

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

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

« Ответ #48: Вторник 07 Сентября 2021, 16:58:53 »
>Насколько понимаю, перейдет на относитеный адрес $65.
Относительный относительно чего ? Господа бога ? Больше быть относительным не от чего.
>Т.е. надо стукнуть так, что бы относительный адрес
>оказался там, где мы хотим - например в ОЗУ?
Ну вот опять относительный.
Абсолютный, еще раз абсолютный адрес $65 где находится ?
Хотя пример не очень удачный наспех привел, пусть x в нем будет $75
Тогда абсолютный адрес $85 где находится ?
>Но я перепутал. Эта как раз ваша рутина которую вы туда закинули.
>
>C6 01 78 LDA $0178
>81 RTS
Почему моя ? И каким образом я ее туда закинул, силой своей мысли ?
Это ПО Фильмнета ее создало. Потому-что не может без такой рутины.
Сказали Спасибо: balton, skad163, lift-man, Shurik406
« Последнее редактирование: Вторник 07 Сентября 2021, 17:22:03 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

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

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

« Ответ #49: Вторник 07 Сентября 2021, 17:07:59 »
Цитата(Ethereal от Вторник 07 Сентября 2021, 16:58:53)

> Относительный относительно чего ? Господа бога ? Больше быть относительным не от чего.

Это опять мое малое знание ассемблера и 6805. Я предпологал что BRA перепрыгивает на относительный адрес - т.е. относительно адресу где находится инструкция BRA.
Цитата(Ethereal от Вторник 07 Сентября 2021, 16:58:53)

> Тогда абсолютный адрес $85 где находится ?

$85 тогда как раз находится в ОЗУ куда можно забросить код (между адресами ОЗУ $80 и $FF).
Цитата(Ethereal от Вторник 07 Сентября 2021, 16:58:53)

> >C6 01 78 LDA $0178
> >81 RTS
> Почему моя ? И каким образом я ее туда закинул, силой своей мысли ?

Ээээ... ну через команду CA24. Или это прописано процом куда вернуться после окончания инструкции?
- Спасибо
Жалоба Записан

Страницы: « 1 ... 3 4 5 6 7 ... 44 » Вверх
« предыдущая тема следующая тема »
Перейти в:

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

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

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

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

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

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

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

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