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

закрыть X

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

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

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

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

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

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

#### Ethereal

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

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

« Ответ #70: Среда 18 Мая 2022, 03:02:54 »
Свел задачу к минимальной - подставить любой из таких байтов
c6 lda трехбайтная
ce ldx трехбайтная
c1 cmp трехбайтная
c3 cpx трехбайтная
cb add трехбайтная
c0 sub трехбайтная
c2 sbc трехбайтная
c4 and трехбайтная
ca ora трехбайтная
c8 eor трехбайтная
в ячейку ОЗУ $9D
Вот прогон эмуляции запуска вируса, где решение минимальной задачи
заменено ручной подстановкой в эмуляторе
e 9D C1
Код: [Выделить]

MC68HC05SC24 The Adult Channel Videocrypt card emulator V00.00 (C)Ethereal
a=FF x=FF sp=FF cc=E8=hInzc
1620: 9B sei
-g 1643
[3F][7E][11][25][05][24][B0][05][00][00][4D][59][00][01][80][48][56][03][10]
a=84 x=FF sp=FF cc=FC=HINzc
1643: 9C rsp
-e 9D C1 <- вот только это нечестная подстановка
-g 1643
>53
>72
>00
>00
>10
[72]
>00
>00
>A6
>55
>CD
>00
>14
>C7
>20
>F9
>00
>00
>00
>00
>00
>00
[90][00]
a=00 x=00 sp=FF cc=FA=HInZc
1643: 9C rsp
-g F85
>53
>74
>00
>00
>20
[74]
>E8
>59
>19
>00
>EC
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>8D
>3F
>65
>87
>00
a=00 x=00 sp=FD cc=EB=hInZC
0F85: CE10B1 ldx $10B1
-t
a=00 x=55 sp=FD cc=E9=hInzC
0F88: 2721 beq $FAB
-t
a=00 x=55 sp=FD cc=E9=hInzC
0F8A: 01B51E brclr 0,$B5, $FAB
-t
a=00 x=55 sp=FD cc=E9=hInzC
0F8D: 07B50C brclr 3,$B5, $F9C
-t
a=00 x=55 sp=FD cc=E9=hInzC
0F90: CD1915 jsr $1915
-p
a=D6 x=55 sp=FD cc=ED=hINzC
0F93: B6B7 lda $B7
-t
a=EC x=55 sp=FD cc=ED=hINzC
0F95: BEB8 ldx $B8
-t
a=EC x=00 sp=FD cc=EB=hInZC
0F97: CD1939 jsr $1939
-p
a=EC x=00 sp=FD cc=EB=hInZC
0F9A: BD8A jsr $8A
-t
a=EC x=00 sp=FB cc=EB=hInZC
008A: D6EC00 lda $EC00,x
-t
a=00 x=00 sp=FB cc=EB=hInZC
008D: 81 rts
-t
a=00 x=00 sp=FD cc=EB=hInZC
0F9C: 09B50C brclr 4,$B5, $FAB
-t
a=00 x=00 sp=FD cc=EB=hInZC
0F9F: B6B7 lda $B7
-t
a=EC x=00 sp=FD cc=ED=hINzC
0FA1: B78A sta $8A
-t
a=EC x=00 sp=FD cc=ED=hINzC
0FA3: A69D lda #$9D
-t
a=9D x=00 sp=FD cc=ED=hINzC
0FA5: B78B sta $8B
-t
a=9D x=00 sp=FD cc=ED=hINzC
0FA7: B78C sta $8C
-t
a=9D x=00 sp=FD cc=ED=hINzC
0FA9: BD8A jsr $8A
-t
a=9D x=00 sp=FB cc=ED=hINzC
008A: EC9D jmp $9D,x
-t
a=9D x=00 sp=FB cc=ED=hINzC
009D: C100CB cmp $CB
-t
a=9D x=00 sp=FB cc=EC=hINzc
00A0: 001E00 brset 0,$1E, $A3
-t
a=9D x=00 sp=FB cc=EC=hINzc
00A3: A655 lda #$55
-u
00A3: A655 lda #$55
00A5: CD14C7 jsr $14C7
00A8: 20F9 bra $A3
00AA: 3670 ror $70
00AC: E4CD and $CD,x
00AE: 000704 brset 0,7, $B5
00B1: 2840 bhcc $F3
00B3: E859 eor $59,x
00B5: 1900 bclr 4,0
00B7: EC00 jmp 0,x
00B9: 00EC00 brset 0,$EC, $BC
-d 80
0080: 00 84 01 00 01 53 74 00 00 65 EC 9D 9D 81 3F F3 " St eм???у
0090: C4 65 5A 92 87 DF 00 00 00 07 00 F8 FF C1 00 CB ДeZ'+Я шяБ Л
00A0: 00 1E 00 A6 55 CD 14 C7 20 F9 36 70 E4 CD 00 07 ¦UН З щ6pдН
00B0: 04 28 40 E8 59 19 00 EC 00 00 EC 00 00 00 00 00 (@иY м м
00C0: 00 00 87 00 04 00 00 00 00 00 00 00 00 00 00 00 +
00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 38 00 00 8
00F0: 00 00 00 00 00 00 14 A6 14 A6 14 75 0F AB 1A A7 ¦ ¦ u < §
-g
[55][55][55][55][55][55][55][55][55][55][55][55][55][55][55]...

Как видим, я подсунул в ячейки ОЗУ A2..A9 код вируса
Код: [Выделить]

00 fcb 0 ; зачем этот ноль поясню позже
A6 55 label: lda #$55
CD 14 C7 jsr SEND
20 F9 bra label

с помощью карточной команды
Код: [Выделить]

53 72 00 00 10
00 00 A6 55 CD 00 14 C7 20 F9 00 00 00 00 00 00
^^^^^^^^^^^ ^^^^^^^^^^^ - подсовывается

Что она делает - не знаю, но полагаю, что с таким наполнением
тела не сделает ничего. В итоге, получилось, что когда управление
выкидывает на адрес $9D исполняется такой код :
Код: [Выделить]

0090: C4 65 5A 92 87 DF 00 00 00 07 00 F8 FF C1 00 CB ДeZ'+Я шяБ Л
^^^^^^^^
00A0: 00 1E 00 A6 55 CD 14 C7 20 F9 36 70 E4 CD 00 07 ¦UН З щ6pдН
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

9D : C1 00 CB ; cmp $00CB тут мне надо найти способ подсовывать C1
A0 : 00 1E 00 ; brset 0,$1E,$+3 тут я подставил смещение прыжка ноль,
; а значит сработает переход, не сработает, управление
; в обоих случаях вылетит на следующий адрес
Дальше вирус 7 байт :
A3 : A6 55 ; lda #$55
A5 : CD 14 C7 ; jsr SEND выводим 55 бесконечно
A8 : 20 F9 ; bra $A3

Если минимальную задачу удастся разрешить, тогда в качестве вируса
надо будет поставить другой :
ldx #$xx ; xx надо посчитать, пока лень
jsr $1615
управление вылетит на штатный цикл засасывания заголовка карточной команды
1615: CD1434 jsr $1434
1618: E785 sta $85,x
161A: 5C incx
161B: A305 cpx #5
161D: 26F6 bne $1615
161F: 81 rts
им надо будет засосать новый длинный вирус в хвост ОЗУ, перекрыть адрес
возврата в стеке и тогда по rts управление вылетит на точку входа в
длинный вирус.
Короче, найти ответ на вопрос как карточной командой подставить байт Cx
в ячейку $9D и будет на карте TAC вирус Фениксом.
Сказали Спасибо: balton, Sergio, lift-man, Shurik406
« Последнее редактирование: Среда 18 Мая 2022, 05:19:21 от Ethereal »
Жалоба 212.109.29.221

#### Ethereal

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

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

« Ответ #71: Среда 18 Мая 2022, 21:43:52 »
Собственно теоретически можно считать задачу решенной. Коряво, но решенной.
В чем проблематика задачи ? А в том, что если в ячейку ОЗУ $9D вообще
ничего не подставлять, то тогда по адресу $9D будет стоять
9D : 00 00 CB brset 0,0,$6B
и она прыгнет на адрес $6B, а нам кровь из носу нужно чтобы
этот переход не сработал.
Но фишка в том, что бит 0.0 - это линия данных в спецрегистре и переход
потому сработает, что в промежутках между обменом байт по UART эта линия
в единице. Но если в нужный момент кратковременно дернуть линию данных
в ноль, то бит спецрегистра 0.0 окажется нулевым и переход
не сработает, что нам и надо чтобы через
A0 : 00 1E 00 brset 0,$1E,$A3 ;это переход на следующую команду
A3 : малый вирь
управление вылетело на код малого виря.
Значит, чтобы запустить виря на карте TAC Videocrypt без глитча,
нужно помочь исполнению кода дернув в нужный момент линию данных.
Давайте сэмулируем такую ситуацию. Я в эмуляторе командой эмулятора
e 0 1A
"опущу линию данных в ноль"
командой эмулятора трассировка
t
исполню
009D: 0000CB brset 0,0, $6B
и потом командой эмулятора
-e 0 1B
снова "подниму линию данных в единицу".
Буду реализовывать сценарий, который предложил выше
- исполнить подсунутый карточной командой 53 72 00 00 10 малый вирь
A3 : AE 40 ldx #$40
A5 : CD 16 15 jsr $1615
который перепрыгнет на штатный цикл засоса заголовка карточной команды.
1615: CD1434 jsr $1434
1618: E785 sta $85,x
161A: 5C incx
161B: A305 cpx #5
161D: 26F6 bne $1615
161F: 81 rts
Из-за того, что регистр x будет задан мной равным #40 цикл засосет
$C5 байт начиная с адреса $C5 (такое вот совпадение)
среди которых будет большой вирус который ради примера
выведет дамп адресов $1000..$10FF :
00C5: 5F clrx
00C6: D61000 lda $1000,x
00C9: CD14C7 jsr $14C7 ; SEND
00CC: 5C incx
00CD: 26F7 bne $C6
00CF: 81 rts
Большой вирус, как я полагаю, может безопасно простираться вплоть до
адреса $EC включительно, ячейки $C5..$EC не используются.
Засосываемое дальше перекроет стек, в частности по адресам $FA:$FB
адрес возврата от вызова
A5 : CD 16 15 jsr $1615
Я его сделаю равным $00C5 . Более вложенные адреса возврата в стеке
по адресам $FC:$FF не буду портить, запишу в них те-же значения, что
в них были раньше потому-что по задумке хочу запустить вирус прозрачно,
т.е. так чтобы карта исполнения виря просто не заметила. Поэтому после
того как большой вирь отработает буду аккуратно возвращать управление
карте по rts при незапорченном стеке.
Дальше большой шмат засасываемого будет прописан в адреса $100..
где никаких физических ячеек нет. Ну и последние 5 байт засасываемого
попадут туда куда штатно засасывается заголовок карточной команды.
Пропишу туда то, что там итак былО.
В общем когда засасывание закончится отработает возврат
161F: 81 rts
и управление полетит на адрес $C5 , который точка входа большого вируса.
Вирус выведет дамп адресов $1000..$10FF и уже своим rts
00CF: 81 rts
чисто вернет управление коду карты.
Короче, эмулируем :
Код: [Выделить]

MC68HC05SC24 The Adult Channel Videocrypt card emulator V00.00 (C)Ethereal
a=FF x=FF sp=FF cc=E8=hInzc
1620: 9B sei
-g 1643
[3F][7E][11][25][05][24][B0][05][00][00][4D][59][00][01][80][48][56][03][10]
a=84 x=FF sp=FF cc=FC=HINzc
1643: 9C rsp
-g 1643
>53
>72
>00
>00
>10
[72]
>00
>00
>AE
>40
>CD
>00
>16
>15
>00
>00
>00
>00
>00
>00
>00
>00
[90][00]
a=00 x=00 sp=FF cc=FA=HInZc
1643: 9C rsp
-g F8A
>53
>74
>00
>00
>20
[74]
>E8
>59
>19
>00
>EC
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>8D
>3F
>65
>87
>00
a=00 x=55 sp=FD cc=E9=hInzC
0F8A: 01B51E brclr 0,$B5, $FAB
-t
a=00 x=55 sp=FD cc=E9=hInzC
0F8D: 07B50C brclr 3,$B5, $F9C
-t
a=00 x=55 sp=FD cc=E9=hInzC
0F90: CD1915 jsr $1915
-p
a=D6 x=55 sp=FD cc=ED=hINzC
0F93: B6B7 lda $B7
-t
a=EC x=55 sp=FD cc=ED=hINzC
0F95: BEB8 ldx $B8
-t
a=EC x=00 sp=FD cc=EB=hInZC
0F97: CD1939 jsr $1939
-p
a=EC x=00 sp=FD cc=EB=hInZC
0F9A: BD8A jsr $8A
-t
a=EC x=00 sp=FB cc=EB=hInZC
008A: D6EC00 lda $EC00,x
-t
a=00 x=00 sp=FB cc=EB=hInZC
008D: 81 rts
-t
a=00 x=00 sp=FD cc=EB=hInZC
0F9C: 09B50C brclr 4,$B5, $FAB
-t
a=00 x=00 sp=FD cc=EB=hInZC
0F9F: B6B7 lda $B7
-t
a=EC x=00 sp=FD cc=ED=hINzC
0FA1: B78A sta $8A
-t
a=EC x=00 sp=FD cc=ED=hINzC
0FA3: A69D lda #$9D
-t
a=9D x=00 sp=FD cc=ED=hINzC
0FA5: B78B sta $8B
-t
a=9D x=00 sp=FD cc=ED=hINzC
0FA7: B78C sta $8C
-t
a=9D x=00 sp=FD cc=ED=hINzC
0FA9: BD8A jsr $8A
-t
a=9D x=00 sp=FB cc=ED=hINzC
008A: EC9D jmp $9D,x
-t
a=9D x=00 sp=FB cc=ED=hINzC
009D: 0000CB brset 0,0, $6B
-e 0 1A
-t
a=9D x=00 sp=FB cc=EC=hINzc
00A0: 001E00 brset 0,$1E, $A3
-e 0 1B
-t
a=9D x=00 sp=FB cc=EC=hINzc
00A3: AE40 ldx #$40
-t
a=9D x=40 sp=FB cc=E8=hInzc
00A5: CD1615 jsr $1615
-t
a=9D x=40 sp=F9 cc=E8=hInzc
1615: CD1434 jsr $1434
-u
1615: CD1434 jsr $1434
1618: E785 sta $85,x
161A: 5C incx
161B: A305 cpx #5
161D: 26F6 bne $1615
161F: 81 rts
1620: 9B sei
1621: 9C rsp
1622: CD1999 jsr $1999
1625: AD93 bsr $15BA
1627: CD1551 jsr $1551
162A: A681 lda #$81
162C: B78D sta $8D
-d 80
0080: 00 84 01 00 01 53 74 00 00 65 EC 9D 9D 81 3F F3 " St eм???у
0090: C4 65 5A 92 87 DF 00 00 00 07 00 F8 FF 00 00 CB ДeZ'+Я шя Л
00A0: 00 1E 00 AE 40 CD 16 15 00 00 36 70 E4 CD 00 07 R@Н 6pдН
00B0: 04 28 40 E8 59 19 00 EC 00 00 EC 00 00 00 00 00 (@иY м м
00C0: 00 00 87 00 04 00 00 00 00 00 00 00 00 00 00 00 +
00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 38 00 00 8
00F0: 00 00 00 00 00 00 14 A6 14 A6 00 A8 0F AB 1A A7 ¦ ¦ Ё < §
-g 161F
>5F
>D6
>10
>00
>CD
>14
>C7
>5C
>26
>F7
>81
>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
>38
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>00
>C5
>0F
>AB
>1A
>A7
>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
>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
>53
>74
>00
>00
>65
a=65 x=05 sp=F9 cc=EA=hInZc
161F: 81 rts
-t
a=65 x=05 sp=FB cc=EA=hInZc
00C5: 5F clrx
-u
00C5: 5F clrx
00C6: D61000 lda $1000,x
00C9: CD14C7 jsr $14C7
00CC: 5C incx
00CD: 26F7 bne $C6
00CF: 81 rts
00D0: 000000 brset 0,0, $D3
00D3: 000000 brset 0,0, $D6
00D6: 000000 brset 0,0, $D9
00D9: 000000 brset 0,0, $DC
00DC: 000000 brset 0,0, $DF
-d 80
0080: 04 84 01 00 01 53 74 00 00 65 EC 9D 9D 81 3F F3 " St eм???у
0090: C4 65 5A 92 87 DF 00 00 00 07 00 F8 FF 00 00 CB ДeZ'+Я шя Л
00A0: 00 1E 00 AE 40 CD 16 15 00 00 36 70 E4 CD 00 07 R@Н 6pдН
00B0: 04 28 40 E8 59 19 00 EC 00 00 EC 00 00 00 00 00 (@иY м м
00C0: 00 00 87 00 04 5F D6 10 00 CD 14 C7 5C 26 F7 81 + _Ц Н З\&ч?
00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 D4 00 00 Ф
00F0: 00 00 00 00 14 A6 14 75 16 18 00 C5 0F AB 1A A7 ¦ u Е < §
-g CF
[07][00][F8][FF][00][00][FF][FF][04][00][37][49][5A][49][47][9B][65][33][8D][32][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][94][00][07][84][FB][04][06][00][00][07][84][FB][00][01][01][40][65][33][8D][32][A3][5B][3A][7C][24][69][CF][9D][14][FB][BA][97][3A][33][E5][A5][DD][39][76][35][E4][EB][8F][70][D7][3A][5E][56][5D][1B][CF][80][79][3B][8D][CE][B0][53][17][9F][7D][74][12][84][26][75][8A][F0][3F][A1][70][FE][60][5B][82][29][2B][95][A7][00][00][43][CC][0D][60][1C][FC][0E][8C][0E][94][8E][BB][8E][D2][9D][12][9D][1B][8E][DA][8F][01][8F][10][8F][13][8F][16][0F][19][0F][33][0F][37][0F][37][0F][37][0F][51][0F][5F][0F][6B][55][06][0A][DC][E7][8C][CD][29][65][00][00][00][00][00][00][00][00][00][CC][0E][03][CC][1E][B8][CC][0F][F8][81][9D][9D][00][0D][D2][0D][D7][05][03][11][00][00][4D][59][00][01][80][FE][7F][10][03][56][48][00][00][00][08][6E][40][02][1B][FB][DB][0B][5D][00][00][00][00][00][00][00][00][00][00][00][00][00][00][55][00]
a=00 x=00 sp=FB cc=EA=hInZc
00CF: 81 rts
-g 1643
[90][00]
a=00 x=00 sp=FF cc=EA=hInZc
1643: 9C rsp
-g 1643
>53
>78
>00
>00
>08
[78][EE][93][6C][93][55][5C][65][AD][90][00]
a=00 x=00 sp=FF cc=EA=hInZc
1643: 9C rsp
-q

Так работает-же. Вирус запустился, вывалил дамп, а потом управление
было аккуратно отдано карте, которая завершила карточную команду и
выдала 90 00. А после этого я еще до кучи карточную команду
53 78 00 00 08 исполнил чтобы убедиться, что все и дальше работает ОК.
Ну и вот это все можно проделать на настоящей карте только
дерганием линии данных в ноль нужно не промахнуться. Как сделать
привязку к нужному моменту без метода тыка не очевидно. Если
при тыкании промахнешься управление полетит в адрес $6B , а там
нереализованные адреса которые читаются по разному в зависимости
от того какой проциковой командой их читать. Короче исполнится
черте что и улетит управление черте куда.
Но теоретически, пусть и коряво, можно считать, что задача решена.
Запуск вирЯ без глитчА. Отечественное вирусостроение оно такое.
Сказали Спасибо: balton, Sergio, Andro, Shurik406
« Последнее редактирование: Среда 18 Мая 2022, 23:56:53 от Ethereal »
Жалоба 212.109.29.221

#### Shurik406

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

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

« Ответ #72: Среда 18 Мая 2022, 23:14:31 »
Спасибо большое за анализ! Очень было интересно читать!
Цитата

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

А можно это сделать глитчером... но без глитча. Т.е. закончить команду 74 и отпустить линию после паузы (точку конечно подобрать придется), но перед тем как перейдет на рутину READ_ISO_HEADER.
А вот если не надоело, вот еще вам одну карточку с эмулировать. В приложении полный дамп карты Скай 9й серии - которая сразу шла после 7й (8й не было) - файл sky09.rom в dasm.zip. Карта основана на SC21 (06, 07 и ТАС - на SC24). Эта карта не глитчится совсем - т.е. тоже самое что и карта Видеокрипта-2. ATR очень похож, так что предполагается что чип и РОМ у них одинаков.
Но... у этой карты особенности. У оп-кодов поменяли местами биты 4 и 5 и еще биты 0 и 2. Прилагается еще ассемблер (TASM21), дисассемблер (dasm) и исходник.
Програмка у карты на много сложнее чем у 09 из за неких нано-команд. Объяснять не буду так как есть в приложении. Этими нано-командами можно сделать все что хочешь. Прописать в карту, считать ее, патчи заложить и т.д. Этим способом ее и вычитали (там еще история есть про то как этот код выставили на аукцион в отеле Dorchester за 300000 фунтов...).
Единственное "но" это то что эти нано-команды отключились оператором перед тем как перешли на серию карт 10 (а там ваще гемморой с ASIC...). Как отключили? Насколько известно, прописали код 1B 90 3F A7 04 в адрес $0BBC. А значит что полно этих старых карт не вычитать, не перепрограммировать, ничего. Зачем это сделали, не знаю. Но у меня одна "живая" карта все-таки сохранилась. Так что хотелось бы поиграть с эмулятором перед тем как лезть в карту...
TASM_SC21.zip
(39.66 КБ ~ Скачиваний: 4)
sky_rom09_disassembly.zip
(59.22 КБ ~ Скачиваний: 5)
dasm.zip
(95.09 КБ ~ Скачиваний: 4)
09NANOS.TXT
(15.11 КБ ~ Скачиваний: 4)
Сказали Спасибо: balton, Sergio, Ethereal
Жалоба Записан

#### Ethereal

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

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

« Ответ #73: Четверг 19 Мая 2022, 00:06:56 »
Цитата(Shurik406 от Среда 18 Мая 2022, 23:14:31)

> А можно это сделать глитчером... но без глитча.

Нужно . Глитчером привязанные ко времени
просадки линии данных как раз и делаются.
У глитчера есть команды
Ins03_DxLo
Ins04_DxHi
так-что в глитчерной команде делаешь заклинание
03 20 xx xx 04
где
03 - просадить линию данных в ноль
20 xx xx - задержка, т.е. длительность просадки
04 - поднять линию данных в единицу
Задержкой перед заклинанием позиционируешь просадку во времени.
Сказали Спасибо: balton, Sergio, lift-man, Shurik406
Жалоба 212.109.29.221

#### Shurik406

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

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

« Ответ #74: Четверг 19 Мая 2022, 08:18:16 »
Значит на теории это оставить нельзя. Будем пробиваться!

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

Цитата(Shurik406 от Среда 18 Мая 2022, 23:14:31)

> Этими нано-командами можно сделать все что хочешь. Прописать в карту, считать ее, патчи заложить и т.д. Этим способом ее и вычитали

КСТАТИ! "этим" способом оказался тот-же самый способ что вы и нашли в карте ТАС! Кормишь карту командой 74 с правильным хэшом и нано-командой и сравниваешь DCW 256 раз.
А там есть такая нано:
09 hi lo - starting address
30 len - read len bytes
call hash
У меня даже уже рутина для этого есть в hacktv.
github.com...-ca.c#L427
Ну и все. Конечно без нано-команд это не сделаешь и карта останется "закрытой".
Сказали Спасибо: balton, Sergio, Ethereal, Andro, lift-man
« Последнее редактирование: Четверг 19 Мая 2022, 15:25:33 от Shurik406 »
Жалоба Записан

#### Shurik406

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

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

« Ответ #75: Четверг 19 Мая 2022, 15:23:43 »
Я правильно делаю?
Код: [Выделить]

TX Data : 1F 0E 03 01 92 C4 53 72 00 00 10 80 CF 00 00 AE
40 CD 00 16 15 00 00 00 00 00 00 00 00 81 04 00
RX Data : 1F 16 3F 7E 11 25 05 24 B0 05 00 00 4D 59 00 01
80 48 56 03 10 72 90 00
TX Data : 2E C4 53 74 00 00 20 80 DF E8 59 19 00 EC 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 8D 3F 65 87 00
03 20 0B 4D 04 < line down, pause, line up
00
RX Data : 2E 01 74
TX Data : 23 DF 5F D6 10 00 CD 14 C7 5C 26 F7 81 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 04 00
RX Data : 23 00
TX Data : 23 DF 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 C5 0F AB 1A A7 00 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 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 04 00
RX Data : 33 00
TX Data : 33 EF 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 04 00
RX Data : 33 00
TX Data : 28 E4 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 53 74 00 00 65 0F 00
RX Data : 27 00

- Спасибо
Жалоба Записан

#### Shurik406

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

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

« Ответ #76: Понедельник 23 Мая 2022, 23:47:19 »
Ну что, эмулятор получится сделать для карты 09?
- Спасибо
Жалоба Записан

#### Shurik406

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

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

« Ответ #77: Среда 25 Мая 2022, 13:27:21 »
Пока я сидел и думал что делать с 9й картой, мне знакомый напомнил что DirecTV в Америке использовал точно такой-же чип, так как все шло от NDS. У этой карты было назначение "F" - у меня такая же сидит в коробке. Так вот, эти карты они тоже лупили - к тому же *до* того как появился Такер. И как же?
Интернет, и даже web archive, ничего интересного не сказал, так что решил написать Крису Герлинскому. Вчера он ответил и сказал что там некий "paul-e" в один прекрасный день зашел на ИРКу в канал #satellite и оставил там схематику и все что нужно что бы построить анлупер именно для этой карты. Архивчик прикован.
Там используется PAL от Atmel - весь анлупер в железе.
И вот что он делает.
Код: [Выделить]

RESET CARD
RELEASE RESET LINE
CLOCK OUT 400 PULSES
DATA LINE HIGH
CLOCK OUT 500 MORE
DATA LINE LOW
CLOCK OUT 245 MORE
DATA LINE HIGH CLOCK OUT 576
RUN CARD AT 3.57 MHZ
XMIT A 79 HEX TO CARD @9600 BAUD
CARD WILL ACK THE 79 <- NOW YOU ARE IN IF YOU GOT THIS FAR!!!
IF NO ACK GO BACK TO TOP

Т.е. видимо используется глитч напряжения (даже 2), насколько я понимаю (data line high/low). Еще в РИДМИ там вот это:
Цитата

> Let me first tell you
> what won't work from experience. Glitches on the reset line, over-
> clocking, under-clocking, software alone, microwave, liquid nitrogen,
> freeze spray, or any other idea you may have.
> <snip>
> Silicon does strange things when it's not operating at the correct voltage.
> What this fix does, is pull the card +5 volts down to the point we screw up
> an instruction. If you count all the clock pulses from the trailing edge of
> card reset, you can glitch the card +5 volts at any instruction you want.

Еще:
Цитата

> The pal first
> syncronizes the PC Reset command with the card clock and then starts
> counting ISO clocks. When the correct number of clocks have occured,
> it glitches the card Vcc line. The pal pulls the card Vcc line down
> for 105 nsec and then releases it. It's just enough to cause the mpu
> to read a floating bus and not recover before the next clock edge.

Единственное что не написано это на какое напряжение отпускается линия. Думаю это можно подобрать используя B0 xx - главное что-бы не сбрасывалась карта. А вот чистый глитч напряжения я не вижу наверное можно использовать 0С, но там 2 глитча с задержкой. Ну может подойдет.
Код: [Выделить]

Ins0C_GlitchDelayGlitch:
in r0, PORTD
mov r17, r0
cbr r17, 0x04 ; lo PD2 glitch bit
sbr r17, 0x08 ; 4 clocks hi PD4 alt-clock
out 0x12, r17 ; 1 clock glitch w/ alt-clock
nop ;
out 0x12, r0 ; 2 clocks glitch off

Мне Криc еще дал эмулятор для SC21, но он не как ваш, а используется вместе с ресивером/декодером и полной копии самой карты в файле. Тоже прилагается ради интереса.
F_card_unlooper.zip
(147.19 КБ ~ Скачиваний: 4)
dss_p1_6805sc21_emu_5versions.zip
(287.88 КБ ~ Скачиваний: 4)
Сказали Спасибо: balton, Ethereal, lift-man
Жалоба Записан

#### Shurik406

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

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

« Ответ #78: Среда 25 Мая 2022, 23:12:05 »
Цитата(Shurik406 от Среда 25 Мая 2022, 13:27:21)

> наверное можно использовать 0С, но там 2 глитча с задержкой.

Нет, там тоже смешанный.
cbr r17, 0x04 ;
sbr r17, 0x08 ; 4 clocks
Надо наверное переделать вот так.
cbr r17, 0x04 ;
cbr r17, 0x08 ; 4 clocks
Тогда должен получится чистый глитч по питанию.
Кстати, пока сбрасывал карту через цикл в скрипте, я потихоньку крутил регулятор напряжения на глитчере. Несколько раз даже выплюнул куски EEPROMа, а значит что действительно карту глюкнуть просто дерганием питания - можно! Только надо найти параметры и точку атаки...
- Спасибо
Жалоба Записан

#### Ethereal

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

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

« Ответ #79: Четверг 26 Мая 2022, 06:05:41 »
Цитата(Shurik406 от Четверг 19 Мая 2022, 15:23:43)

> Я правильно делаю?

Не пытайся запустить все сразу. Если есть больше одной причины
по которой не работает, то изменяя скрипт ты устраняешь одну, но другие
остаюся. Надо собирать по кирпичикам, маленьким кирпичикам. Когда
первый кирпичик заработает приставляешь к нему второй и тогда всегда
причина того, что не работает будет лежать в последнем.
Что тут удобно для первого кирпичика. А такой малый вирь
9D nop
CD 14 34 jsr $1434 ; RECV
CC 15 B6 jmp $15B6
где
15B6: ADCA bsr $1582 ; на jmp SEND
15B8: 20FC bra $15B6 ; вечный цикл
где
1582: CC14C7 jmp $14C7 ; SEND
То есть малый вирь будет принимать один байт и потом выводить
его бесконечно. Задача - заставить его запускаться и чтобы
карта выводила ровно тот байт, что ей был послан. Вот только
когда это заработает идеально надо будет в код малого виря
подставить итоговое
AE 40 ldx #$40
CD 16 15 jsr $1615
Так-что вот так :
TX Data : 1F 0E 03 01 92 C4 53 72 00 00 10 80 CF 00 00 9D
CD 14 00 34 CC 15 B6 00 00 00 00 00 00 81 04 00
TX Data : 37 C4 53 74 00 00 20 80 DF E8 59 19 00 EC 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 8D 3F 65 87 00
04 20 xx xx 03 20 00 20 04 20 01 00 C0 zz
0F
и перебирать xx xx пока не вывалит простыня из байтов zz
Перебор xxxx будет продвигать во времени довольно узкую просадку
длиной 0020. Как найдешь можно ее сделать еще уже.

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

Цитата(Shurik406 от Среда 25 Мая 2022, 13:27:21)

> Т.е. видимо используется глитч напряжения (даже 2), насколько я понимаю (data line high/low).

Линия данных, а не линия питания. Так-что это не глитч напряжения. А нечто над чем надо думать.
Сказали Спасибо: balton, lift-man, Shurik406
Жалоба 212.109.29.221

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

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

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

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

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

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

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

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

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