Потрошение Videocrypt-а - стр. 5 - Обсуждение систем условного доступа(CA) - YARIK-SAT

закрыть X

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

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

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

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

# Потрошение Videocrypt-а

- 115 Ответов
- 9657 Просмотров

#### Ethereal

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

##### Потрошение Videocrypt-а

« Ответ #40: Четверг 05 Мая 2022, 17:51:15 »
Цитата(Shurik406 от Четверг 05 Мая 2022, 08:30:20)

> ATR: 3F FA 11 25 05 00 01 B0 02 3B 20 4D 59 00 81 80 - та что в эмуляторе. Предпоследний байт - сенсор. Он постоянно меняется в штатной операции, но возвращается на 81.

Так вот ни фига. ATR у карты из эмуля такой :
3F - фиксированный байт
FA - фиксированный байт
11 - фиксированный байт
25 - фиксированный байт
05 - берется из ячейки EEPROM $D14
00 - берется из ячейки EEPROM $D17
01 - фиксированный байт
B0 - фиксированный байт
02 - фиксированный байт
3B 3B 4D 59 00 10 0D - строчка берется из EEPROM $D08..$D0E
Итого разница в байтах
Код: [Выделить]

3B 3B 4D 59 00 10 0D - строчка берется из EEPROM $D08..$D0E
^^ - ты говоришь мол 20
^^ - признак суицида, а что тут было до суицида ?
^^ - ты говоришь мол 80
ибо
0D00 : E6 12 58 C5 67 9C 2A 7C 3B 3B 4D 59 00 10 0D 00
^^ ^^^^^

Особенно интересует вот эта ячейка где 10.
Понятно что если 10, то карта идет в вечный цикл выдавая 69 69 69 69 ...
и не пойдет если ячейку $D0D занулить. Вопрос - что в ней было до
суицида ? Ноль или не ноль, эта ячейка выглядит как состояние карты.
Ну и ячейки где 3B вместо 20 и 0D вместо 80. Они коцнуты или так и было ?

Подумал(a) и добавил(a): Четверг 05 Мая 2022, 18:23:26

Вот бета версия эмуля : www.karelmasters.com/... уже не бета, а V00.00
карты Sky 7-серии СУД Видеокрипт на чипе MC68HC05SC24
Сказали Спасибо: balton, DIverSA.T, Andro, lift-man, Robin-Hood, Shurik406
« Последнее редактирование: Пятница 06 Мая 2022, 02:43:39 от Ethereal »
Жалоба 212.109.29.221

#### Shurik406

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

##### Потрошение Videocrypt-а

« Ответ #41: Четверг 05 Мая 2022, 19:07:54 »
Цитата(Ethereal от Четверг 05 Мая 2022, 17:51:15)

> Ну и ячейки где 3B вместо 20 и 0D вместо 80. Они коцнуты или так и было ?

В дампе они коцанутые. В штатном виде ATR 3F FA 11 25 05 00 01 B0 02 3B 20 4D 59 00 81 80.
Вот этот байт $D0D действительно говорит о состоянии карты. Там в новой версии практически каждый бит что-то означает. В этой версии не все используются.
Спасибо за эмуль! Будем тыкать.
Сказали Спасибо: balton, Ethereal, DIverSA.T, lift-man, Robin-Hood
Жалоба Записан

#### Ethereal

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

##### Потрошение Videocrypt-а

« Ответ #42: Четверг 05 Мая 2022, 21:06:03 »
Цитата(Shurik406 от Четверг 21 Апреля 2022, 16:22:37)

> Хм... все равно ни в какую.
> Код: [Выделить]
> TX Data : B0 FF
> TX Data : 3F 0E 03 01 20 08 BC 0A 8F <- reset + glitch to bypass check
> C4 00 20 00 00 08 80 <- INS 20
> C7 9D 9D 9D AE 4D CD 14 24 20 00 72 0A <- virus + glitch
> DF <- 32 bytes
> A6 77 CD 18 D8 5F C6 00 00 CD 18 D8 3C D8 26 F6 <- $D0
> 8E 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 <- $E0
> 04 00
> TX Data : 33
> ...

Так тут перед
TX Data : 33
...
должно отработать RX Data
Ты должен получить на каком байте команды глитчер остановился, сколько байт принял, эти байты (а он должен получить ATR и квитанцию карточной команды 00 20) и только получив все это от глитчера подать ему следующую команду.
Команда глитчеру - Ответ от глитчера - Команда глитчеру - Ответ от глитчера - Команда глитчеру - Ответ от глитчера ...
Вот так

Подумал(a) и добавил(a): Четверг 05 Мая 2022, 21:18:45

Цитата(Ethereal от Суббота 16 Апреля 2022, 12:35:54)

> А зачем ? Если ты делаешь глитчером Rx а карта ничего в данный момент посылать не собирается вот тут-то произойдет тайм-аут на прием и глитчер карту сбросит.

А вот тут я с советом затупил.
Я подумал что речь идет про RX глитчером от карты. Тогда ничего принимать не надо. Карта не получив все байты посылки ничем еще не ответит.
А речь шла про RX компом от глитчера. Т.е. про RX между глитчерными командами в скрипте, а не внутри глитчерной команды. Тогда обязательно надо.
Сказали Спасибо: balton, DIverSA.T, lift-man, Robin-Hood, Shurik406
Жалоба 212.109.29.221

#### Ethereal

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

##### Потрошение Videocrypt-а

« Ответ #43: Пятница 06 Мая 2022, 02:19:46 »
ИЗМЕНЕНИЯ В ЭМУЛЯТОРЕ
Сделал так, чтобы был
>В штатном виде ATR 3F FA 11 25 05 00 01 B0 02 3B 20 4D 59 00 81 80
штатный ATR.
Также хотя в дампе прочлось
Код: [Выделить]

0000 : 01 0F 02 03 04 01 06 07 40 87 0A 0B 0C 0D 0E 0F
^^

сделал так чтобы при старте карты бит 9.2 был нулевым.
Это бит в спецрегистре управления EEPROM.
Он программно не изменяется, он какой-то железный.
Если при старте он выставлен, то срабатывает ветвление
Код: [Выделить]

17BD: 04090A brset 2,9, $17CA
17C0: 5A decx
17C1: 26F4 bne $17B7
17C3: 1209 bset 1,9
17C5: 1009 bset 0,9
17C7: 1E09 bset 7,9
17C9: 81 rts
17CA: 1209 bset 1,9
17CC: 1009 bset 0,9
17CE: BE9E ldx $9E
17D0: A601 lda #1
17D2: 81 rts

и дает ошибку SW1 SW2 = 92 02
А если этот бит сброшен то все оки и 90 00
Че он значит - ХЕЗ, но что-то железное.
В результате заработала команда 00 B0 :
Код: [Выделить]

MC68HC05SC24 Sky UK Series 7 Videocrypt card emulator V00.00 (C)Ethereal
a=FF x=FF sp=FF cc=E8=hInzc
1400: 9B sei
-g 143D
[3F][FA][11][25][05][00][01][B0][02][3B][20][4D][59][00][81][80]
a=01 x=09 sp=FF cc=E8=hInzc
143D: 9C rsp
-g 143D
>00
>20
>00
>00
>08
[21]
>E6
>12
>58
>C5
>67
>9C
>2A
>7C
[90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-g 143D
>00
>B0
>0D
>08
>00
[B1][3B][20][4D][59][00][81][80][00][0E][01][0E][06][05][01][11][00][00][00][00][00][00][00][00][00][20][33][44][01][F8][FB][0A][06][01][00][14][CE][FC][04][00][06][27][00][14][CE][FC][00][0D][E7][0D][E7][3F][01][01][00][40][35][A0][F4][5C][F3][61][99][74][F8][7A][B8][DB][35][AB][10][F8][B7][D1][DE][21][EB][39][28][05][1D][92][4E][FB][AE][D1][AA][45][5C][FA][B7][41][C8][F4][72][68][F4][71][7D][FE][32][5B][4B][C1][FC][13][31][6A][CC][C7][D3][FF][B2][3D][FB][ED][15][6E][97][00][CC][0E][FB][1F][44][0F][3B][0F][41][8F][5D][9F][B4][8F][73][8F][7C][8F][80][8F][CB][9F][C7][9F][CB][9F][CF][8F][FC][0E][DF][0E][E3][0E][E3][0E][E3][10][30][00][19][98][50][4C][45][41][53][45][20][43][41][4C][4C][20][30][35][30][36][20][20][34][36][30][30][30][30][03][16][75][50][55][53][48][20][42][55][54][54][4F][4E][20][20][20][54][4F][20][56][49][45][57][0D][0C][6B][20][57][52][4F][4E][47][20][43][41][52][44][17][50][4C][45][41][53][45][20][43][41][4C][4C][20][30][35][30][36][20][34][36][30][30][30][30][00][9E][3F][BC][CC][19][8F][CD][14][90][00]
a=00 x=00 sp=FF cc=FB=HInZC
143D: 9C rsp
-g 143D
>00
>20
>00
>00
>08
[21]
>E6
>12
>58
>C5
>67
>9C
>2A
>7C
[90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-g 143D
>00
>B0
>10
>00
>F0
[B1][B7][BB][CD][0E][FB][AD][23][3A][BB][26][F7][81][07][84][03][CC][1F][19][B7][AE][AE][04][CD][1E][FF][27][02][3F][B6][B6][AE][3A][B7][26][06][B4][B6][27][02][12][84][81][07][84][F2][CC][1F][0C][CD][18][50][04][B4][08][CD][1F][59][3C][8C][CC][16][C4][AE][40][CD][0E][FE][5A][26][FA][03][84][42][0D][85][32][09][85][15][B6][B2][01][85][3E][AE][22][BF][8A][AE][0D][BF][89][5F][CD][17][04][27][D9][20][D2][AD][3A][CD][0E][CA][B6][B3][B7][9A][B6][B2][B1][98][27][04][3F][99][3F][9B][B7][98][CD][17][77][20][BD][B6][85][2B][16][A4][1F][A1][0F][23][0E][9C][13][84][B6][BD][C1][0D][09][23][06][AE][09][20][C0][AD][08][AE][20][03][84][B9][CC][1E][AB][B6][BD][C1][0D][09][25][E1][81][65][E7][71][1A][B4][88][D7][76][28][D0][4C][6E][86][8C][C8][43][A9][EC][60][42][05][F2][3D][1C][6C][BC][AF][C3][2B][B5][DC][90][F9][05][EA][51][46][9D][E2][60][70][52][67][26][61][49][42][09][50][99][90][A2][36][0E][FD][39][CC][1B][E7][CC][1B][CC][CC][1B][7D][00][00][00][00][80][00][00][90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-q

Перед каждым использованием ей нужно кормить пароль
Код: [Выделить]

0D00 : E6 12 58 C5 67 9C 2A 7C 3B 3B 4D 59 00 10 0D 00
^^^^^^^^^^^^^^^^^^^^^^^

а если нулевой бит в предпоследнем байте ATR сброшен тогда другой
Код: [Выделить]

0CF0 : 53 94 5A 02 8F D8 01 5C 18 77 3D 76 CD EE 8D 92
^^^^^^^^^^^^^^^^^^^^^^^

Не даш верного пароля и от команды 00 B0 карте кердык (состояние $10).
Даш неверный и от команды 00 20 карте кердык (тоже состояние $10).
P1:P2 это начальный адрес откуда будем читать.
Он плюс длина чтения P3 должен укладываться в диапазон
доступных адресов. Доступны адреса от
$D08 (сразу за паролями) до $10EF (перед секурити-зоной где 55)
включительно, насколько понял. Т.е. только EEPROM можно читать.
Если P3 указывается как 00 то читается 256 байт.
В примере выше как раз крайние места диапазона читаются...
Дал эмулю версию V00.00 и заменил по вышеуказанной ссылке.

Подумал(a) и добавил(a): Пятница 06 Мая 2022, 03:17:40

Вот смотри, эмулирую ситуацию когда младший бит предпоследнего
байта ATR сброшен. Пароль уже нужен другой и все работает.
Код: [Выделить]

MC68HC05SC24 Sky UK Series 7 Videocrypt card emulator V00.00 (C)Ethereal
a=FF x=FF sp=FF cc=E8=hInzc
1400: 9B sei
-e d0d 80
-g 143D
[3F][FA][11][25][05][00][01][B0][02][3B][20][4D][59][00][80][80]
a=01 x=09 sp=FF cc=E8=hInzc
143D: 9C rsp
-g 143D
>00
>20
>00
>00
>08
[21]
>18
>77
>3D
>76
>CD
>EE
>8D
>92
[90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-g 143D
>00
>B0
>0F
>F0
>00
[B1][4C][B7][B7][9F][A4][07][CD][1E][EB][B7][B6][81][AD][0E][A6][0F][B7][BB][CD][0E][FB][AD][23][3A][BB][26][F7][81][07][84][03][CC][1F][19][B7][AE][AE][04][CD][1E][FF][27][02][3F][B6][B6][AE][3A][B7][26][06][B4][B6][27][02][12][84][81][07][84][F2][CC][1F][0C][CD][18][50][04][B4][08][CD][1F][59][3C][8C][CC][16][C4][AE][40][CD][0E][FE][5A][26][FA][03][84][42][0D][85][32][09][85][15][B6][B2][01][85][3E][AE][22][BF][8A][AE][0D][BF][89][5F][CD][17][04][27][D9][20][D2][AD][3A][CD][0E][CA][B6][B3][B7][9A][B6][B2][B1][98][27][04][3F][99][3F][9B][B7][98][CD][17][77][20][BD][B6][85][2B][16][A4][1F][A1][0F][23][0E][9C][13][84][B6][BD][C1][0D][09][23][06][AE][09][20][C0][AD][08][AE][20][03][84][B9][CC][1E][AB][B6][BD][C1][0D][09][25][E1][81][65][E7][71][1A][B4][88][D7][76][28][D0][4C][6E][86][8C][C8][43][A9][EC][60][42][05][F2][3D][1C][6C][BC][AF][C3][2B][B5][DC][90][F9][05][EA][51][46][9D][E2][60][70][52][67][26][61][49][42][09][50][99][90][A2][36][0E][FD][39][CC][1B][E7][CC][1B][CC][CC][1B][7D][00][00][00][00][80][00][00][90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-q

Подумал(a) и добавил(a): Пятница 06 Мая 2022, 03:32:46

Вот еще одна эмуляция. Что происходит когда после предъявления пароля
попытаться исполнить 00 B0 ДВА раза.
Код: [Выделить]

MC68HC05SC24 Sky UK Series 7 Videocrypt card emulator V00.00 (C)Ethereal
a=FF x=FF sp=FF cc=E8=hInzc
1400: 9B sei
-g 143D
[3F][FA][11][25][05][00][01][B0][02][3B][20][4D][59][00][81][80]
a=01 x=09 sp=FF cc=E8=hInzc
143D: 9C rsp
-g 143D
>00
>20
>00
>00
>08
[21]
>E6
>12
>58
>C5
>67
>9C
>2A
>7C
[90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-g 143D
>00
>B0
>0F
>F0
>00
[B1][4C][B7][B7][9F][A4][07][CD][1E][EB][B7][B6][81][AD][0E][A6][0F][B7][BB][CD][0E][FB][AD][23][3A][BB][26][F7][81][07][84][03][CC][1F][19][B7][AE][AE][04][CD][1E][FF][27][02][3F][B6][B6][AE][3A][B7][26][06][B4][B6][27][02][12][84][81][07][84][F2][CC][1F][0C][CD][18][50][04][B4][08][CD][1F][59][3C][8C][CC][16][C4][AE][40][CD][0E][FE][5A][26][FA][03][84][42][0D][85][32][09][85][15][B6][B2][01][85][3E][AE][22][BF][8A][AE][0D][BF][89][5F][CD][17][04][27][D9][20][D2][AD][3A][CD][0E][CA][B6][B3][B7][9A][B6][B2][B1][98][27][04][3F][99][3F][9B][B7][98][CD][17][77][20][BD][B6][85][2B][16][A4][1F][A1][0F][23][0E][9C][13][84][B6][BD][C1][0D][09][23][06][AE][09][20][C0][AD][08][AE][20][03][84][B9][CC][1E][AB][B6][BD][C1][0D][09][25][E1][81][65][E7][71][1A][B4][88][D7][76][28][D0][4C][6E][86][8C][C8][43][A9][EC][60][42][05][F2][3D][1C][6C][BC][AF][C3][2B][B5][DC][90][F9][05][EA][51][46][9D][E2][60][70][52][67][26][61][49][42][09][50][99][90][A2][36][0E][FD][39][CC][1B][E7][CC][1B][CC][CC][1B][7D][00][00][00][00][80][00][00][90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-g 143D
>00
>B0
>10
>00
>F0
[B1][69][69][69][69][69][69][69][69][69][69][69][69]...

Первый раз 00 B0 отработала нормально, а второй раз ушла в вечный цикл
выдавая бесконечно 69. Карта при этом в состоянии 10 , т.е. сдохши.
Это потому, что перед 00 B0 нужно предъявлять пароль КАЖДЫЙ РАЗ.
А что будет если у предпоследнего байта ATR (состояние карты)
выставить бит 6 и больше ничего не трогать :
Код: [Выделить]

MC68HC05SC24 Sky UK Series 7 Videocrypt card emulator V00.00 (C)Ethereal
a=FF x=FF sp=FF cc=E8=hInzc
1400: 9B sei
-e D0D C1
-g 143D
[3F][FA][11][25][05][00][01][B0][02][3B][20][4D][59][00][C1][80]
a=01 x=09 sp=FF cc=E8=hInzc
143D: 9C rsp
-g 143D
>00
>20
>00
>00
>08
[21]
>E6
>12
>58
>C5
>67
>9C
>2A
>7C
[90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-g 143D
>00
>B0
>0F
>F0
>00
[B1][4C][B7][B7][9F][A4][07][CD][1E][EB][B7][B6][81][AD][0E][A6][0F][B7][BB][CD][0E][FB][AD][23][3A][BB][26][F7][81][07][84][03][CC][1F][19][B7][AE][AE][04][CD][1E][FF][27][02][3F][B6][B6][AE][3A][B7][26][06][B4][B6][27][02][12][84][81][07][84][F2][CC][1F][0C][CD][18][50][04][B4][08][CD][1F][59][3C][8C][CC][16][C4][AE][40][CD][0E][FE][5A][26][FA][03][84][42][0D][85][32][09][85][15][B6][B2][01][85][3E][AE][22][BF][8A][AE][0D][BF][89][5F][CD][17][04][27][D9][20][D2][AD][3A][CD][0E][CA][B6][B3][B7][9A][B6][B2][B1][98][27][04][3F][99][3F][9B][B7][98][CD][17][77][20][BD][B6][85][2B][16][A4][1F][A1][0F][23][0E][9C][13][84][B6][BD][C1][0D][09][23][06][AE][09][20][C0][AD][08][AE][20][03][84][B9][CC][1E][AB][B6][BD][C1][0D][09][25][E1][81][65][E7][71][1A][B4][88][D7][76][28][D0][4C][6E][86][8C][C8][43][A9][EC][60][42][05][F2][3D][1C][6C][BC][AF][C3][2B][B5][DC][90][F9][05][EA][51][46][9D][E2][60][70][52][67][26][61][49][42][09][50][99][90][A2][36][0E][FD][39][CC][1B][E7][CC][1B][CC][CC][1B][7D][00][00][00][00][80][00][00][90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-g 143D
>00
>B0
>10
>00
>F0
[B1][B7][BB][CD][0E][FB][AD][23][3A][BB][26][F7][81][07][84][03][CC][1F][19][B7][AE][AE][04][CD][1E][FF][27][02][3F][B6][B6][AE][3A][B7][26][06][B4][B6][27][02][12][84][81][07][84][F2][CC][1F][0C][CD][18][50][04][B4][08][CD][1F][59][3C][8C][CC][16][C4][AE][40][CD][0E][FE][5A][26][FA][03][84][42][0D][85][32][09][85][15][B6][B2][01][85][3E][AE][22][BF][8A][AE][0D][BF][89][5F][CD][17][04][27][D9][20][D2][AD][3A][CD][0E][CA][B6][B3][B7][9A][B6][B2][B1][98][27][04][3F][99][3F][9B][B7][98][CD][17][77][20][BD][B6][85][2B][16][A4][1F][A1][0F][23][0E][9C][13][84][B6][BD][C1][0D][09][23][06][AE][09][20][C0][AD][08][AE][20][03][84][B9][CC][1E][AB][B6][BD][C1][0D][09][25][E1][81][65][E7][71][1A][B4][88][D7][76][28][D0][4C][6E][86][8C][C8][43][A9][EC][60][42][05][F2][3D][1C][6C][BC][AF][C3][2B][B5][DC][90][F9][05][EA][51][46][9D][E2][60][70][52][67][26][61][49][42][09][50][99][90][A2][36][0E][FD][39][CC][1B][E7][CC][1B][CC][CC][1B][7D][00][00][00][00][80][00][00][90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-q

00 B0 сработала ОБА РАЗА.
Отсюда вывод - выставленный 6-й бит предпоследнего байта ATR означает, что
пароль можно предъявить один раз. А если он сброшен, то нужно каждый раз.
Собственно когда этот бит сброшен при окончании исполнения карточных команд
(кроме 00 20 конечно) буферок где хранится предъявленный пароль нулируется.
А когда выставлен не нулируется :
Код: [Выделить]

1624: B781 sta $81
1626: C60D0D lda $D0D ; состояние карты
1629: A540 bit #$40
162B: 260B bne $1638
162D: BF80 stx $80
162F: AE07 ldx #7
1631: 6F8C clr $8C,x ; 8C..93 буферок для предъявленного пароля
1633: 5A decx
1634: 2AFB bpl $1631
1636: BE80 ldx $80
1638: B681 lda $81

Сказали Спасибо: balton, DIverSA.T, Andro, lift-man, Robin-Hood, Shurik406
« Последнее редактирование: Пятница 06 Мая 2022, 03:38:45 от Ethereal »
Жалоба 212.109.29.221

#### Shurik406

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

##### Потрошение Videocrypt-а

« Ответ #44: Пятница 06 Мая 2022, 07:44:23 »
Это гениально! А все рассматривал этот пароль как хэшь, а не пароль. Если не ошибаюсь, то этот пароль действительно хэшь в следуещей версии этой карты. Дамп в посте #25.
Там ещё есть D0 команда. Она стирает/прописывает данные в eeprom по 4 байта. Буфер данных закладывается в ОЗУ 98..9B. Хотя я ее особенно не тестировал, так как тоже предлагал что там нужен пароль.
Регистр 9 действительно управляет железо. А точнее, режим карты - чтение, программирование или стирание еепрома. Один из битов заряжает помп (charge pump - PGM) для программирования, так как Vpp там не нужен.
Сказали Спасибо: balton, Ethereal, DIverSA.T, lift-man, Robin-Hood
Жалоба Записан

#### Shurik406

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

##### Потрошение Videocrypt-а

« Ответ #45: Пятница 06 Мая 2022, 12:54:15 »
Цитата(Ethereal от Четверг 05 Мая 2022, 21:06:03)

> Команда глитчеру - Ответ от глитчера - Команда глитчеру - Ответ от глитчера - Команда глитчеру - Ответ от глитчера ...
> Вот так

УРААААА! Заработало!!! Это круть...
Код: [Выделить]

TX Data : B0 FF
TX Data : 22 0E 03 01 20 09 3D 0A 8F 20 00 82 0A 0A C4 00
20 00 00 08 80 C7 9D 9C AE 4D CD 14 24 81 20 00
72 0A 00
RX Data : 22 11 3F FA 11 25 05 00 01 B0 02 3B 3B 4D 59 03
10 00 21
TX Data : 23 DF 5F C6 00 00 CD 18 D8 3C D3 26 F6 8E 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 D0 00 00
00 00 04 00
RX Data : 23 00
TX Data : 33 EF 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 D0 CD CD CD CD CC C1 CD CD C5 C7 CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD 04 00
RX Data : 33 00
TX Data : 33 EF CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CC C1 CD CD C5 C7 CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD 04 00
RX Data : 33 00
TX Data : 3B F7 CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CC C1 CD CD C5 C7 CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD 7F 7F 10 00 20 00 00 08 0F 00
RX Data : 00 0F 02 03 04 01 06 07 40 87 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
00 00 10 00 20 00 00 08 D6 0D 0C 81 9D 9C AE 4D
CD 14 24 81 00 4F 00 FB 00 00 00 00 00 02 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
5F C6 00 D3 CD 18 D8 3C D3 26 F6 8E 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 D0 00 00 00 00
00 00 00 00 00 00 00 00 18 BC 18 C2 19 5D 00 D7
3A 00

Сказали Спасибо: balton, Ethereal, DIverSA.T, lift-man, Robin-Hood
Жалоба Записан

#### Ethereal

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

##### Потрошение Videocrypt-а

« Ответ #46: Воскресенье 08 Мая 2022, 00:34:00 »
Вот до кучи сделал еще эмулятор карты The Adult Channel из дампа TACDMP.BIN.zip (из сообщения топика 3)
www.karelmasters.com/...
Сказали Спасибо: balton, DIverSA.T, skad163, lift-man, Robin-Hood, Shurik406
Жалоба 212.109.29.221

#### Ethereal

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

##### Потрошение Videocrypt-а

« Ответ #47: Воскресенье 08 Мая 2022, 13:18:32 »
Еще интересная эмуляция карты Sky.
В сообщении 1 топика лог с ATR живой карты
Цитата(Shurik406 от Суббота 12 Марта 2022, 00:32:29)

> Trying to reset card...
> Reset Successful
> RX ATR : 3F FA 11 25 05 00 01 B0 02 3B FA 4D 59 00 81 80
> TX Data : 53 74 00 00 20
> RX Data : 74
> TX Data : E8 20 3E ED F0 1C 00 6F E9 06 D6 00 67 F1 FC 3B
> BF 9A AA 6B 5B 42 86 F4 D8 35 BE 01 B3 D2 7F A9 <<-- 32 байта encrypted control word (формат потом разъясню)
> RX Data : 90 00 <<-- OK (всегда ОК)
> TX Data : 53 78 00 00 FF <<-- запрос decrypted control word (DCW)
> RX Data : 78
> RX Data : 37 12 32 31 BE 0B 95 29 00 4F 00 FB 20 33 51 4F <<-- первые 8 байт DCW, остальное остаток ОЗУ
> 01 00 01 00 9B 18 00 00 24 07 00 00 00 00 27 E9
> 06 C7 00 00 E8 00 F0 1C A5 7F 00 F9 A0 F0 1C 00
> 00 20 58 00 00 20 30 60 08 00 00 00 30 80 00 02
> 80 10 A0 00 00 00 06 00 01 00 80 00 00 00 04 10
> 50 00 10 00 04 20 02 00 00 00 41 02 00 04 20 00
> 10 00 60 00 12 20 04 09 17 01 16 D9 18 BC 18 C2
> 19 5D 1A A1 00 00 00 00 00 00 00 00 00 00 00 00

ATR живой, но одним байтом отличается от ATR карты Sky которую эмулируем :
Код: [Выделить]

В логе : 3F FA 11 25 05 00 01 B0 02 3B FA 4D 59 00 81 80
^^
Эмуль Sky : 3F FA 11 25 05 00 01 B0 02 3B 20 4D 59 00 81 80
^^

Отэмулируем этот лог. Только предварительно заполним в эмуле все ОЗУ
байтами $55, которых в логе нет. Этим выделим ячейки ОЗУ, которые
никак не используются и которых при сравнении результата эмуляции
с логом сравнивать не надо. Если они не использовались, то в логе
эмуляции они будут $55, а в логе карты иметь случайные значения.
Эмуляция :
Код: [Выделить]

MC68HC05SC24 Sky UK Series 7 Videocrypt card emulator V00.00 (C)Ethereal
a=FF x=FF sp=FF cc=E8=hInzc
1400: 9B sei
-e 80 55
-e 81 55
-e 82 55
-e 83 55
-e 84 55
... <- вырезал кусок однообразного заполнения ОЗУ 55-ками
-e FB 55
-e FC 55
-e FD 55
-e FE 55
-e FF 55
-g 143D
[3F][FA][11][25][05][00][01][B0][02][3B][20][4D][59][00][81][80]
a=01 x=09 sp=FF cc=E8=hInzc
143D: 9C rsp
-g 143D
>53
>74
>00
>00
>20
[74]
>E8
>20
>3E
>ED
>F0
>1C
>00
>6F
>E9
>06
>D6
>00
>67
>F1
>FC
>3B
>BF
>9A
>AA
>6B
>5B
>42
>86
>F4
>D8
>35
>BE
>01
>B3
>D2
>7F
>A9
[90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-g 143D
>53
>78
>00
>00
>74
[78][37][12][32][31][BE][0B][95][29][00][4F][00][FB][20][33][44][01][01][00][01][00][9B][18][00][00][24][07][00][00][00][00][27][E9][06][C7][00][00][E8][00][F0][1C][55][7F][00][F0][55][F0][1C][00][00][20][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][17][01][16][D9][18][BC][18][C2][19][5D][1A][A1][90][00]
a=00 x=00 sp=FF cc=EB=hInZC
143D: 9C rsp
-q

Сравниваем результаты :
Код: [Выделить]

80 : 37 12 32 31
^^^^^^^^^^^ <- DCW совпадает
90 : BE 0B 95 29 00 4F 00 FB 20 33 44 01 01 00 01 00
^^^^^^^^^^^ <- DCW совпадает ^^^^^ <- различия
A0 : 9B 18 00 00 24 07 00 00 00 00 27 E9 06 C7 00 00
B0 : E8 00 F0 1C 55 7F 00 F0 55 F0 1C 00 00 20 55 55
^^ <- различие
C0 : 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
D0 : 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
E0 : 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
F0 : 55 55 55 55 17 01 16 D9 18 BC 18 C2 19 5D 1A A1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <- стек совпадает

В итоге :
1.) decrypted control word (DCW) расшифровалось один в один
2.) стек совпадает один в один
3.) В ОЗУ только три байта различаются, остальные совпадают.
От чего различаются можно поковыряться, но раз ATR немного другой,
то и в EEPROM наверное другие различия тоже имеются. Отсюда вот.
По ходу вычисление DCW вполне нормально эмулируется.
Сказали Спасибо: balton, DIverSA.T, lift-man, Shurik406
Жалоба 212.109.29.221

#### Ethereal

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

##### Потрошение Videocrypt-а

« Ответ #48: Воскресенье 08 Мая 2022, 17:49:49 »
Цитата(Shurik406 от Суббота 12 Марта 2022, 12:21:44)

> А в приложении дамп карты The Adult Channel. Тоже основана на 7й серии карты Скай, но не точь в точь. Метод чтения неизвестен, но видно в ОЗУ что последняя команда перед дампом была 74

Можно в первом приближении прикинуть метод чтения.
Во первых не просто 74-я команда, а почти наверное
Код: [Выделить]

53 74 00 00 xx
E8 49 09 92 xx xx xx 74 CE DF EF xx xx xx xx xx
xx xx xx xx xx xx xx xx xx xx 00 xx xx CD 16 xx

Установил это просто находя какие байты из тела 74-й команде
останутся видны в дампе ОЗУ после ее эмуляции. Видны следующие :
Код: [Выделить]

80 : 00 D9 01 00 01 53 74 00 00 CD D6 00 8C 81 B5 F9
^^ <- виден в дампе
90 : C5 1C 6D 57 99 57 00 00 00 07 00 F8 FF 00 00 CB
A0 : 00 00 00 00 00 00 00 00 00 00 16 30 64 CC 00 07
B0 : 04 28 40 E8 49 09 92 00 B8 01 00 BB 01 74 CE DF
^^^^^^^^^^^ ^^^^^^^^ <- видны в дампе
^^^^^^^^ ^^^^^^^^ - почти повторяются, а B8 и BB
совпадают с адресом где лежат
Похоже менялись при последовательном побайтном чтении
C0 : EF 00 16 00 00 00 00 00 00 00 00 00 00 00 00 00
^^ ^^ ^^ <- видны в дампе
D0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E0 : 00 00 00 00 00 00 00 00 00 00 00 00 00 92 00 00
F0 : 00 40 00 00 00 00 14 A6 14 A6 14 75 0F 9C 1A A7

Причем команда 74 в момент снятия дампа еще не завершилась, потому-что
когда она завершится но еще не выдаст 90 00 на дне стека остается 1A A7
точно как в дампе, а в процессе выдачи 90 00 на дно стека упадет адрес
18 B0 от вызова
18AB: AD06 bsr $18B3 ; посылка SW1
18AD: 9F txa
18AE: AD03 bsr $18B3 ; посылка SW2
18B0: CC1643 jmp $1643 ; на прием следующей команды
18B3: CC14C2 jmp $14C2 ; SEND
А теперь глянем что такое адрес возврата 1A A7 со дна стека
1A84: A6CC lda #$CC
1A86: B78A sta $8A
1A88: BEB1 ldx $B1
1A8A: DE1089 ldx $1089,x
1A8D: 2A03 bpl $1A92
1A8F: CD1086 jsr $1086
1A92: BEB1 ldx $B1
1A94: D61089 lda $1089,x
1A97: A47F and #$7F
1A99: 5C incx
1A9A: 5C incx
1A9B: BFB1 stx $B1
1A9D: DE1088 ldx $1088,x
1AA0: CD1939 jsr $1939 ; sta $8B stx $8C clrx
1AA3: B689 lda $89
1AA5: BD8A jsr $8A
1AA7: 20DB bra $1A84
Это какой-то цикл интерпретации в котором вызывается ОЗУ-шная рутина по
адресу 8A в которой команда CC hi lo , т.е. jmp hilo на адрес подпрограммы.
В цикле вызываются эти джампы на подпрограммы, а их адреса берутся из
таблицы с адреса 1088. Но в нашем дампе по адресу $8A не $CC.
Тогда берем следующий адрес возврата со стека - 0F 9C
0F90: CD1915 jsr $1915 ; lda #$D6 sta $8A !!! вот откуда D6 !!!
0F93: B6B7 lda $B7
0F95: BEB8 ldx $B8
0F97: CD1939 jsr $1939 ; sta $8B stx $8C clrx
0F9A: BD8A jsr $8A
0F9C: 09B50C brclr 4,$B5, $FAB
Это чтение с произвольного адреса той-же ОЗУ-шной рутинкой по адресу $8A.
Только теперь в ней по адресу $8A прописывается $D6 , т.е. первый байт
команды lda hilo,x
Так-что снятый дамп по ходу читался этой ОЗУ-шной рутиной
Код: [Выделить]

80 : 00 D9 01 00 01 53 74 00 00 CD D6 00 8C 81 B5 F9
^^^^^^^^^^^ - lda hilo,x rts

Но тогда ... тогда когда эта ОЗУ-шная рутина читала саму себя
она ведь должна была прочитать собственный адрес. Но ведь так и есть :
Код: [Выделить]

80 : 00 D9 01 00 01 53 74 00 00 CD D6 00 8C 81 B5 F9
Это HI ^^ - Я лежу по адресу 008B и равен 00
Это LO ^^ - Я лежу по адресу 008C и равен 8C

В общем однозначно дамп читался внутри карточной команды 74 и до то как она
завершилась, т.е. самой этой командой. И читался штатной ОЗУ-шной рутинкой
чтения с произвольного адреса, т.е. средствами карты, средствами 74-й
команды. Короче, выходит что 74-й командой можно как-то сдампить карту.
От оно как
З.Ы
>0F93: B6B7 lda $B7
>0F95: BEB8 ldx $B8
>0F97: CD1939 jsr $1939 ; sta $8B stx $8C clrx
>0F9A: BD8A jsr $8A ; чтение ОЗУ-рутинкой с адреса [$B7:$B8]
И это в кассу. Отсюда следует, что если моя терия верна, то
Ячейка B7 когда читается в дампе будет содержать HI собственного адреса
Ячейка B8 когда читается в дампе будет содержать LO собственного адреса
Но оно так и есть !
Сказали Спасибо: DIverSA.T, lift-man, Shurik406
« Последнее редактирование: Воскресенье 08 Мая 2022, 19:02:43 от Ethereal »
Жалоба 212.109.29.221

#### Shurik406

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

##### Потрошение Videocrypt-а

« Ответ #49: Воскресенье 08 Мая 2022, 18:18:28 »
Да там много таких нюансов, поэтому и хотел эмулятор.
Самое интересное это chaining (цепь, передача информации) от одной карты к другой. Когда раньше новую карту присылали, первым делом что надо было сделать это вставить старую карту, а потом новую. Это процесс копирует данные подписок, PPV и т.д. Хотелось бы раскусить этот процесс.
Вчера сдампнул ещё одну карту The Adult Channel. У неё ROM 100% совпадает с картой скай, а вот програмка в EEPROMе совсем другая. Ключи тоже другие.
А ещё дампнул 3 других карт Sky. Там пароли для аутентификации INS 20 в каждой карте разные. Может быть они вычисляются от серийного номера карты.
Кстати, были какие нибудь подвиги с картой 5 серии (та которая была на рабочем столе)?

Подумал(a) и добавил(a): Воскресенье 08 Мая 2022, 18:38:27

Цитата

> В общем однозначно дамп читался внутри карточной команды 74 и до то как она
> завершилась, т.е. самой этой командой. И читался штатной ОЗУ-шной рутинкой
> чтения с произвольного адреса, т.е. средствами карты, средствами 74-й
> команды. Короче, выходит что 74-й командой можно как-то сдампить карту.

А вот именно как было бы ОЧЕНЬ интересно узнать!

Подумал(a) и добавил(a): Воскресенье 08 Мая 2022, 20:39:16

@Ethereal ещё просьба - можете с эмулировать приложенный дамп. Это из карты 6й серии. Там вроде есть тот-же алгоритм что и на 5й и 7й. Чип и РОМ те же сымые, а EEPROM другой.
Если это так, то дамп с 5й серии наверное не надо. Хотя, если хотите, то пожалуйста!
MySky-06-3227995.bin.zip
(3.54 КБ ~ Скачиваний: 3)
Сказали Спасибо: Ethereal, DIverSA.T, lift-man
« Последнее редактирование: Воскресенье 08 Мая 2022, 20:39:16 от Shurik406 »
Жалоба Записан

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

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

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

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

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

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

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

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

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