закрыть X

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

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

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

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

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

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

#### stefanvl

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

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

« Ответ #410: Пятница 27 Мая 2022, 02:35:03 »
Я выполнил дамп CAB0 для этой карты:
Viasat InterAccess 3F 67 2F 00 11 14 00 01 68 90 00
'PROM dump for Ec-M : 3F 67 2F 00 11 14 00 01 68 90 00 (C)Ethereal
' Tucker-glitcher + UL4S soft, Phase = 3 /CLK phase I&D/
' No keys/PIN in dump (CAB0 used for dumping)
Dim x, I, J, ANS, Adr, EPROM(&h1F00)
Sub Main()
x = 0 : Adr = &h1EE0
Sc.Write("B0 FF")
While (ANS<>&h90) Or (x<>7)
Sc.Write("05 0E 03 01 8A 00"):RX
Sc.Write("0A 0E 03 C4 CA C4 00 00 0A 8C 00"):RX
Sc.Write("1E 0E 03 C4 CA 48 00 00 0A 80 C0 94 80 C0 08 80")
Sc.Write("C7 00 00 00 00 00 00 00 00 22 00 98 09 81 00"):RX
ANS=Sc.GetByte(5)
WEnd
For I=&h7B8 To 0 Step -4
Sc.Write("08 C4 CA B0" & Hex4(I) & "20 A2 00"):RX
For J=3 To &h22
EPROM(Adr) = Sc.GetByte(J)
Adr = Adr + 1
Next
Adr = Adr - &h30
Next
Sc.Print("--------------------- CA B0 DUMP ---------------------")
For I=0 To &h1EF7
If (I And &hF)=0 Then Sc.Print(vbcr & Hex4(I) & " : ")
II = Hex(EPROM(I))
If Len(II)=1 Then II = "0" & II
Sc.Print(II & " ")
Next
End Sub
Function Hex4(I)
Dim A
A = Hex(I)
While Len(A)<4
A = "0" & A
WEnd
Hex4 = A
End Function
Function RX
Sc.Delay(200)
x=Sc.BytesInBuffer
Sc.Read(x)
End Function
Результат:
TX Data : 08 C4 CA B0 00 0C 20 A2 00
RX Data : 08 23 B0 91 FF F4 0E 9D 20 00 00 B2 01 12 33 47
17 00 00 F2 12 33 47 17 00 00 00 F3 49 53 53 55
45 52 00 90 00
TX Data : 08 C4 CA B0 00 08 20 A2 00
RX Data : 08 23 B0 81 00 01 EB 93 00 00 00 00 00 00 00 00
00 00 00 91 FF F4 0E 9D 20 00 00 B2 01 12 33 47
17 00 00 90 00
TX Data : 08 C4 CA B0 00 04 20 A2 00
RX Data : 08 23 B0 00 00 0D FC 1F 63 30 EA 00 00 01 E5 A9
31 75 F6 81 00 01 EB 93 00 00 00 00 00 00 00 00
00 00 00 90 00
TX Data : 08 C4 CA B0 00 00 20 A2 00
RX Data : 08 23 B0 CC FF FF FF 9F FF FF FF 00 00 00 00 00
00 00 00 00 00 0D FC 1F 63 30 EA 00 00 01 E5 A9
31 75 F6 90 00
--------------------- CA B0 DUMP ---------------------
0000 : CC FF FF FF 9F FF FF FF 00 00 00 00 00 00 00 00
0010 : 00 00 0D FC 1F 63 30 EA 00 00 01 E5 A9 31 75 F6
0020 : 81 00 01 EB 93 00 00 00 00 00 00 00 00 00 00 00
0030 : 91 FF F4 0E 9D 20 00 00 B2 01 12 33 47 17 00 00
0040 : F2 12 33 47 17 00 00 00 F3 49 53 53 55 45 52 00
0050 : 00 00 00 00 94 07 00 28 00 10 02 CA 20 00 00 00
0060 : 93 00 00 00 00 00 00 00 00 00 00 00 93 01 00 00
0070 : 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF
0080 : 91 FF F4 0F 93 02 00 00 00 00 00 00 00 00 00 00
0090 : 93 03 00 00 00 00 00 00 00 00 00 00 B3 00 00 00
00A0 : 00 00 00 00 00 00 00 00 99 0F 00 00 FF FF FF FF
00B0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00C0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00D0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00E0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
00F0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0100 : 91 00 04 0E 9D 20 00 8F F2 12 33 47 17 00 00 00
0110 : F3 54 56 33 00 00 00 00 00 00 00 00 93 00 00 00
0120 : 00 00 00 00 00 00 00 00 93 01 00 00 00 00 00 00
0130 : 00 00 00 00 93 02 00 00 00 00 00 00 00 00 00 00
0140 : 93 03 00 00 00 00 00 00 00 00 00 00 93 08 00 00
0150 : 00 00 00 00 00 00 00 00 93 09 00 00 00 00 00 00
0160 : 00 00 00 00 8A 20 61 20 9E FF 04 00 93 0B 00 00
0170 : 00 00 00 00 00 00 00 00 8A 20 61 20 71 04 04 00
0180 : 91 00 04 1E 9D 20 00 8F F2 12 33 47 17 00 00 00
0190 : F3 54 56 31 30 30 30 00 00 00 00 00 93 00 00 00
01A0 : 00 00 00 00 00 00 00 00 93 01 00 00 00 00 00 00
01B0 : 00 00 00 00 93 02 00 00 00 00 00 00 00 00 00 00
01C0 : 93 03 00 00 00 00 00 00 00 00 00 00 93 08 00 00
01D0 : 00 00 00 00 00 00 00 00 93 09 00 00 00 00 00 00
01E0 : 00 00 00 00 8A 20 61 20 6F FF 06 00 FF FF FF FF
01F0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0200 : 91 00 04 2E 9D 20 00 8F F2 12 33 47 17 00 00 00
0210 : F3 4F 50 54 49 4F 4E 33 00 00 00 00 93 00 00 00
0220 : 00 00 00 00 00 00 00 00 93 01 00 00 00 00 00 00
0230 : 00 00 00 00 93 02 00 00 00 00 00 00 00 00 00 00
0240 : 93 03 00 00 00 00 00 00 00 00 00 00 93 08 00 00
0250 : 00 00 00 00 00 00 00 00 93 09 00 00 00 00 00 00
0260 : 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF
0270 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0280 : 91 00 04 3E 9D 20 00 8F F2 12 33 47 17 00 00 00
0290 : F3 4F 50 54 49 4F 4E 31 00 00 00 00 93 00 00 00
02A0 : 00 00 00 00 00 00 00 00 93 01 00 00 00 00 00 00
02B0 : 00 00 00 00 93 02 00 00 00 00 00 00 00 00 00 00
02C0 : 93 03 00 00 00 00 00 00 00 00 00 00 93 08 00 00
02D0 : 00 00 00 00 00 00 00 00 93 09 00 00 00 00 00 00
02E0 : 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF
02F0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0300 : 91 00 04 4E 9D 20 00 8F F2 12 33 47 17 00 00 00
0310 : F3 4F 50 54 49 4F 4E 32 00 00 00 00 93 00 00 00
0320 : 00 00 00 00 00 00 00 00 93 01 00 00 00 00 00 00
0330 : 00 00 00 00 93 02 00 00 00 00 00 00 00 00 00 00
0340 : 93 03 00 00 00 00 00 00 00 00 00 00 93 08 00 00
0350 : 00 00 00 00 00 00 00 00 93 09 00 00 00 00 00 00
0360 : 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF
0370 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0380 : 91 00 04 0F 93 04 00 00 00 00 00 00 00 00 00 00
0390 : 8A 20 A1 26 B1 04 04 00 93 0D 00 00 00 00 00 00
03A0 : 00 00 00 00 93 0E 00 00 00 00 00 00 00 00 00 00
03B0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
03C0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Остальное все FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
1ED0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
1EE0 : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
1EF0 : FF FF FF FF FF FF FF FF
Я пытался получить ключ эмитента 00, но это не удалось, я всегда получаю один и тот же результат:
' Tucker-glitcher + UL4S soft, Phase = 3 /CLK phase I&D/
Dim x, ANS
Sub Main()
Sc.Write("B0 FF")
x=0
While (ANS<>&h90) Or (x<>7)
Sc.Write("05 0E 03 01 8A 00"):RX
Sc.Write("0A 0E 03 C4 CA C4 00 00 0A 8C 00"):RX
Sc.Write("1E 0E 03 C4 CA 48 00 00 0A 80 C0 94 80 C0 08 80")
Sc.Write("C7 00 00 00 00 00 00 00 00 22 00 99 09 81 00"):RX
ANS=Sc.GetByte(5)
WEnd
Sc.Write("0D C4 CA B0 00 1A 09 80 20 07 53 09 8A 00"):RX
End Sub
Function RX
Sc.Delay(200)
x=Sc.BytesInBuffer
Sc.Read(x)
End Function
Результат:
Executing Script: Script File:
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 04 E8 B3 B6 B5 29 78 CA 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 00 99 09 81 00
RX Data : 1E 05 B7 B7 48 90 00
TX Data : 0D C4 CA B0 00 1A 09 80 20 07 53 09 8A 00
RX Data : 0D 0C B0 00 00 00 00 93 01 00 00 00 90 10
Script Script File: Transmission Completed
Я не уверен, что могу продолжать это. Я не вижу часть RAM в дампе CAB0. Или я пропустил какой-то шаг?
- Спасибо
Жалоба Записан

#### Ethereal

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

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

« Ответ #411: Пятница 27 Мая 2022, 03:41:35 »
Цитата(stefanvl от Пятница 27 Мая 2022, 02:35:03)

> Или я пропустил какой-то шаг?

Конечно. Ты просто не думаешь что делаешь. Смотри :
Из моего ответа #31
Код: [Выделить]

TX Data : 0D C4 CA B0 00 1A 09 80 20 07 53 09 8A 00
RX Data : 0D 0C B0 93 00 DB AD F7 F0 CD 0B 1F 90 00
^^ <- квитанция карточной команды CA B0
^^^^^ <- дескриптор нулевого ключа иссуера
^^^^^^^^^^^^^^^^^^^^ <- нулевой ключ иссуера полностью
^^^^^ <- статус исполнения карточной команды SW1 SW2

Когда я бью глитчем. Когда карточная команда CA B0 начинает выводить ключ начиная с его дескриптора.
Ну а поскольку (из моего ответа #30)
Код: [Выделить]

--------------------- CA B0 DUMP ---------------------
...
0060 : 49 4C 4D 4E 45 54 00 00 93 00 00 00 00 00 00 00
^^^^^ <- дескриптор нулевого ключа иссуера
0070 : 00 00 00 00 93 01 00 00 00 00 00 00 00 00 00 00

дескриптор нулевого ключа иссуера начинается в CAB0-дампе со смещения
$0068, чтобы точнехонько в него попасть я считаю
$68 / 4 = $001A
Вот откуда
Код: [Выделить]

TX Data : 0D C4 CA B0 00 1A 09 80 20 07 53 09 8A 00
^^^^^ <- смещение дескриптора 0-го ключа иссуера
в CAB0-дампе в четверках байт

А что делаешь ты ?
Код: [Выделить]

TX Data : 0D C4 CA B0 00 1A 09 80 20 07 53 09 8A 00
RX Data : 0D 0C B0 00 00 00 00 93 01 00 00 00 90 10
^^^^^^^^^^^ <- хвост нулевого ключа иссуера
^^^^^ <- дескриптор первого ключа иссуера
^^^^^^^^ <- начало первого ключа иссуера

Это называется попал пальцем в небо.
Поскольку у тебя
Код: [Выделить]

--------------------- CA B0 DUMP ---------------------
...
0060 : 93 00 00 00 00 00 00 00 00 00 00 00 93 01 00 00
^^^^^ <- дескриптор нулевого ключа иссуера

то тебе надо использовать не
CA B0 00 1A 09
а
CA B0 00 18 09
Я где-то в этом топике уже вставлял Shurik406 пистоля по этому поводу.
Нельзя этим делом заниматься не проявляя интереса к каждому байту в логе.
Какой в нем смысл, что означает, почему именно такой, а не такой ?

Подумал(a) и добавил(a): Пятница 27 Мая 2022, 03:43:02

Цитата(stefanvl от Пятница 27 Мая 2022, 02:35:03)

> Я не вижу часть RAM в дампе CAB0.

В дампе CAB0 не будет никакой RAM. CAB0 - это дамп (E)EPROM штатными средствами карты. Только (E)EPROM.

Подумал(a) и добавил(a): Пятница 27 Мая 2022, 03:55:49

Цитата(Shurik406 от Четверг 26 Мая 2022, 19:45:16)

> hi00 <--- вот здесь я ошибся, так как думал что index - 8-битный, а он видимо 10-бит...

Индекс в виде регистра x 8-битный
Базовый адрес
в команде E6 12 lda $12,x 8-битный
в команде D6 12 34 lda $1234,x 16-битный
Только сумма базового адреса и индекса это физический адрес и он всегда 16-битный.
Это софтовая часть вопроса. Она для всех MCU с системой команд Motorola 6805 одинакова.
Но есть еще хардовая часть и она у разных MCU разная.
Когда адрес подается на дешифратор адреса некоторые линии адреса могут просто игнорироваться.
Например у чипа MC68HC05SC24 я тебя просил прочитать адреса $8000..$9FFF и у тебя прочлось
тоже самое, что в адресах 0..$1FFF. Это значит дешифратор адреса 15-й бит адреса игнорит.
Эта линия адреса никуда не подключена. Скорей всего у этого чипа биты 14 и 13 адреса тоже
никуда не подключены. Вот почему надо у считываемых карт в каждую задницу залезать,
чтобы знать где какие зеркала. Когда по одним адресам видна копия данных с других адресов
из-за игнора некоторых линий дешифратором адреса, я такие копии называю зеркалами.
Я собственно и адреса $8000..$9FFF тебя просил проверить, чтобы узнать там зеркало
или не зеркало.
Если еще и в адресах $4000..$5FFF будет зеркало значит бит 14 адреса тоже
игнорится, а если в адресах $2000..$3FFF значит и бит 13 тоже. Но если прыгнуть
на код в этих зеркалах чтобы там исполнился jsr какой адрес возврата упадет на стек ?
Думаю адрес зеркала, а не реальных адресов кода которое зеркало отражало.
Сказали Спасибо: lift-man, Shurik406, stefanvl
Жалоба 212.109.29.221

#### stefanvl

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

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

« Ответ #412: Пятница 27 Мая 2022, 14:49:44 »
Здесь я провел тест с одной из моих карт Filmnet. Тест заключается в том, чтобы получить дамп, включающий ключи, используя ключ эмитента 00.
Я успешно выполнил первые три шага, но последний шаг не привел к получению дампа.
Filmnet Eurocrypt Access Card 3F 67 2F 00 11 14 00 03 68 90 00
Hnet.com-image.jpg
(98.07 КБ, 337x228)
(просмотрено 89 раз)
Шаг 1:
'MK0 Issuer for Ec-M : 3F 67 2F 00 11 14 00 03 68 90 00 (C)Ethereal
' Tucker-glitcher + UL4S soft, Phase = 3 /CLK phase I&D/
Dim x, ANS
Sub Main()
pause = &h220000
Sc.Write("B0 FF")
While (ANS <> &h90) Or (x <> 7) or (ANS <> &h00)
Sc.Write("05 0E 03 01 8A 00"):RX
Sc.Write("0A 0E 03 C4 CA C4 00 00 0A 8C 00"):RX
Sc.Write("1E 0E 03 C4 CA 48 00 00 0A 80 C0 94 80 C0 08 80")
Sc.Write("C7 00 00 00 00 00 00 00 00 " & hex(pause) & " 0A 81 00"):RX
pause = pause + 1
delay(100)
ANS=Sc.GetByte(x - 2)
sc.print("Pause: "& hex(pause) & " " & hex(ans)):sc.print
WEnd
Sc.Write("0D C4 CA B0 00 1A 09 80 20 07 A3 0A 8A 00"):RX
End Sub
Function RX
Sc.Delay(200)
x=Sc.BytesInBuffer
Sc.Read(x)
End Function
Результат:
Pause: 22001B 94
TX Data : 05 0E 03 01 8A 00
RX Data : 05 0B 3F 67 2F 00 11 14 00 03 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
RX Data : 0A 0D C4 93 08 D5 BA 9F 0F 9D 27 AE A9 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 00 1B 0A 81 00
RX Data : 1E 05 B7 B7 48 90 00
Pause: 22001C 90
TX Data : 05 0E 03 01 8A 00
RX Data : 05 0B 3F 67 2F 00 11 14 00 03 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
RX Data : 0A 0D C4 93 08 A6 2F 0E 7B 83 14 F6 31 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 00 1C 0A 81 00
RX Data : 1E 05 B7 B7 48 90 00
Pause: 22001D 90
TX Data : 05 0E 03 01 8A 00
RX Data : 05 0B 3F 67 2F 00 11 14 00 03 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
RX Data : 0A 0D C4 93 08 45 39 D8 7C 92 E7 9D 7E 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 00 1D 0A 81 00
RX Data : 1E 05 B7 B7 48 94 00
Pause: 22001E 94
TX Data : 05 0E 03 01 8A 00
RX Data : 05 0B 3F 67 2F 00 11 14 00 03 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
RX Data : 0A 0D C4 93 08 DC 70 B7 61 60 DE 33 97 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 00 1E 0A 81 00
RX Data : 1E 05 B7 B7 48 94 00
Pause: 22001F 94
TX Data : 05 0E 03 01 8A 00
RX Data : 05 0B 3F 67 2F 00 11 14 00 03 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
RX Data : 0A 0D C4 93 08 0E 4A 1D 96 4A CA 55 4F 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 00 1F 0A 81 00
RX Data : 1E 05 B7 B7 48 90 00
Pause: 220020 90
TX Data : 05 0E 03 01 8A 00
RX Data : 05 0B 3F 67 2F 00 11 14 00 03 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
Script Error on Line 23
Script Aborted By User
Я использовал 22 00 1С
Шаг 2: Найдите KEY 00 эмитента:
'MK0 Issuer for Ec-M : 3F 67 2F 00 11 14 00 01 68 90 00 (C)Ethereal
' Tucker-glitcher + UL4S soft, Phase = 3 /CLK phase I&D/
Dim x, ANS
Sub Main()
Sc.Write("B0 FF")
x=0
While (ANS<>&h90) Or (x<>7)
Sc.Write("05 0E 03 01 8A 00"):RX
Sc.Write("0A 0E 03 C4 CA C4 00 00 0A 8C 00"):RX
Sc.Write("1E 0E 03 C4 CA 48 00 00 0A 80 C0 94 80 C0 08 80")
Sc.Write("C7 00 00 00 00 00 00 00 00 22 00 1C 0A 81 00"):RX
ANS=Sc.GetByte(5)
WEnd
Sc.Write("0D C4 CA B0 00 1A 09 80 20 07 A3 0A 8A 00"):RX
End Sub
Function RX
Sc.Delay(200)
x=Sc.BytesInBuffer
Sc.Read(x)
End Function
Результат:
Script Script File: Transmission Completed
Executing Script: Script File:
TX Data : B0 FF
TX Data : 05 0E 03 01 8A 00
RX Data : 05 0B 3F 67 2F 00 11 14 00 03 68 90 00
TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
RX Data : 0A 0D C4 93 08 3F 5F 57 C0 B7 5E 51 E2 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 00 1C 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 : 0D 0C B0 93 00 23 D5 69 82 F1 94 20 90 00
Script Script File: Transmission Completed
Эмитент КЛЮЧ 00 найден 23 D5 69 82 F1 94 20
Шаг 3 CAB0 с ключами: --> WinExplorer 4.4 + Phoenix
' Eurocrypt-M PROM CAB0 dumper
Dim I, II, J, CHALLENGE, Adr, EPROM(&h1F00)
Set DES = CreateObject("Viades.object")
Sub Main()
Des.SetKey("23D56982F19420 00") ' Issuer MK extended by 00
Sc.Write("CA C4 00 00 0A"):RX
CHALLENGE=""
For I=3 To 10
II=Hex(Sc.GetByte(I)):If Len(II)=1 Then II="0"&II
CHALLENGE=CHALLENGE&II
Next
Sc.Write("CA 48 00 00 0A"):RX ' Set MK number as P2
Sc.Write("94"):RX
Sc.Write("08"):RX
Sc.Write(Des.Crypt(Des.EnCrypt,CHALLENGE)):RX
Sc.Verbose=False
Adr=&h1E00
For I=&h780 To 0 Step -&h20
II = Hex(I)
While Len(II)<4
II = "0" & II
WEnd
Sc.Write("CA B0" & II & "00"):RX
For J=1 To &h100
EPROM(Adr) = Sc.GetByte(J)
Adr = Adr + 1
Next
Adr = Adr - &h180
Next
Sc.Print("------------------- PROM CAB0 DUMP -------------------")
For I=0 To &h1EF7
II = Hex(I)
While Len(II)<4
II = "0" & II
WEnd
If (I And &hF)=0 Then Sc.Print(vbcr & II & " : ")
II = Hex(EPROM(I))
If Len(II)=1 Then II = "0" & II
Sc.Print(II & " ")
Next
End Sub
Function RX
Sc.Delay(350)
Sc.Read(Sc.BytesInBuffer)
End Function
Результат:
Executing Script: Script File:
Trying to reset card...
Reset Successful
RX ATR : 3F 67 2F 00 11 14 00 03 68 90 00
TX Data : CA C4 00 00 0A
RX Data : C4 93 08 31 72 F4 F6 91 D9 74 5B 90 00
TX Data : CA 48 00 00 0A
RX Data : B7
TX Data : 94
RX Data : B7
TX Data : 08
RX Data : 48
TX Data : CB BD CD 61 B8 3B 92 C9
RX Data : 90 00
Script Error on Line 26
Sc.GetByte: Requested Byte Exceeds Last Read Request
Я также попробовал другой совет изменить 1A на 18 для другой карты, но эмитент KEY 00 остается 00 00 00 00 00 00 00 00 00. Нужно ли мне найти другой пункт вместо 22 00 1С?
то тебе надо использовать не
CA B0 00 1A 09
а
CA B0 00 18 09
'MK0 Issuer for Ec-M : 3F 67 2F 00 11 14 00 01 68 90 00 (C)Ethereal
' Tucker-glitcher + UL4S soft, Phase = 3 /CLK phase I&D/
Dim x, ANS
Sub Main()
Sc.Write("B0 FF")
x=0
While (ANS<>&h90) Or (x<>7)
Sc.Write("05 0E 03 01 8A 00"):RX
Sc.Write("0A 0E 03 C4 CA C4 00 00 0A 8C 00"):RX
Sc.Write("1E 0E 03 C4 CA 48 00 00 0A 80 C0 94 80 C0 08 80")
Sc.Write("C7 00 00 00 00 00 00 00 00 22 00 1С 0A 81 00"):RX
ANS=Sc.GetByte(5)
WEnd
Sc.Write("0D C4 CA B0 00 18 09 80 20 07 A3 0A 8A 00"):RX
End Sub
Function RX
Sc.Delay(200)
x=Sc.BytesInBuffer
Sc.Read(x)
End Function
Результат:
Executing Script: Script File:
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 00 25 99 64 D5 CE 8A 9A 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 00 1C 0A 81 00
RX Data : 1E 05 B7 B7 48 90 00
TX Data : 0D C4 CA B0 00 18 09 80 20 07 A3 0A 8A 00
RX Data : 0D 0C B0 93 00 00 00 00 00 00 00 00 90 00
Script Script File: Transmission Completed
Спасибо, что читаете и помните, что я все еще учусь :)
- Спасибо
Жалоба Записан

#### Shurik406

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

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

« Ответ #413: Пятница 27 Мая 2022, 15:38:30 »
Цитата(stefanvl от Пятница 27 Мая 2022, 14:49:44)

> Эмитент КЛЮЧ 00 найден 23 D5 69 82 F1 94 20
> Шаг 3 CAB0 с ключами: --> WinExplorer 4.4 + Phoenix

Обычный Феникс не даст тебе ключи, так как штатная команда CAB0 прикрывает их. Поэтому мы и глитчим ее что бы он не прикрывался.
Цитата

> Executing Script: Script File:
> TX Data : B0 FF
> TX Data : 05 0E 03 01 8A 00
> RX Data : 05 0B 3F 67 2F 00 11 14 00 03 68 90 00
> TX Data : 0A 0E 03 C4 CA C4 00 00 0A 8C 00
> RX Data : 0A 0D C4 93 08 3F 5F 57 C0 B7 5E 51 E2 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 00 1C 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 : 0D 0C B0 93 00 23 D5 69 82 F1 94 20 90 00

Вот тут.
Скрипт куда ты засовываешь ключ в принципе то не нужен, он только для авторизации. А авторизацию мы и так проскакиваем глитчем.
Короче, карты с ATR 01 весьма упрямы. Я после многих попыток закончил на таком скрипте. Читается побайтно и сразу без инверсии - где-то час льется. Можно было конечно посадить огромный вирус с перекрытием стека, но как-то на этом закончил.
Точку глитча тебе надо будет подобрать. А может и сразу заработает.
Код: [Выделить]

function main()
{
Sc.verbose = false
x = 0;
Sc.Print("0100 : ");
for(hi = 0x0100; hi < 0x0700; hi++)
{
while(x != 4)
{
Sc.Write("03 01 8A 00");
RX();
data = "0E 03 C4 CA 24 00 00 09 80 C8";
data = data + "9D 9D 9D C6 " + hex(hi, 4) + " CD 1D E1";
data = data + "20 01 70 0A 0F";
data = data + "00";
data = data.replace(/ /g, "");
data = hex(data.length/2, 2) + data;
Sc.write(data);
RX();
}
b = inv(Sc.getbyte(0));
Sc.print(" "); Sc.print(hex(b, 2));
if((hi) % 16 == 15) Sc.print("\n" + hex(hi + 1, 4) + " : ");
x = 0;
}
}
function inv(n)
{
return ~n & 0xFF;
}
function hex(n, i)
{
n = Number(n).toString(16).toUpperCase();
while (n.length < i) {
n = "0" + n;
}
return n;
}
function RX()
{
Sc.Delay(400);
x = Sc.BytesInBuffer;
Sc.Read(x);
}

Подумал(a) и добавил(a): Пятница 27 Мая 2022, 16:01:17

Цитата(Ethereal от Пятница 27 Мая 2022, 03:41:35)

> Если еще и в адресах $4000..$5FFF будет зеркало значит бит 14 адреса тоже
> игнорится, а если в адресах $2000..$3FFF значит и бит 13 тоже.

Понятно.
Цитата

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

А вот это нет. Почему если я сделаю jsr 90B4 на карте Скай, прыг не уйдет на 10B4? Или jsr всегда исполняется в 16 битах?
И если дешифратор адресов 10-битный на карте Canal Digital, то почему LDA $E100 читает именно этот адрес, а не $0100? И если последний адрес в EEPROMе - $FFFF, то значит все 16 линий должны быть подключены..?
Сказали Спасибо: Ethereal, lift-man
Жалоба Записан

#### stefanvl

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

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

« Ответ #414: Пятница 27 Мая 2022, 16:23:38 »
Спасибо!
Я использовал phoenix для этого шага, как объяснено в примере скрипта в ответе #31, хотя результаты этого скрипта также не показывают ключи. Я продолжу с Mikobu III.
Capture.PNG
(54.13 КБ, 967x654)
(просмотрено 100 раз)
Я изучу скрипт, который вы предоставили выше. Форматирование выглядит немного иначе, чем все другие, которые я видел, что немного сбивает меня с толку, скобки и data = data + ... . Обычные объявления переменных в верхней части скрипта отсутствуют ('Dim x, I, J, ANS, Adr, EPROM(&h1F00)'), я предполагаю, что мне все еще нужно добавить их. И, возможно, 'End Function' внизу тоже.
В любом случае, запуск скрипта в таком виде дает ошибку в строке 1
Неверная шестнадцатеричная цифра u в строке 1 входного файла
function main()
{
Sc.verbose = false
x = 0;
Sc.Print("0100 : ");
for(hi = 0x0100; hi < 0x0700; hi++)
{
while(x != 4)
{
Sc.Write("03 01 8A 00");
RX();
data = "0E 03 C4 CA 24 00 00 00 09 80 C8";
data = data + "9D 9D 9D C6 " + hex(hi, 4) + " CD 1D E1";
data = data + "20 01 70 0A 0F";
data = data + "00";
data = data.replace(/ /g, "");
data = hex(data.length/2, 2) + data;
Sc.write(data);
RX();
}
b = inv(Sc.getbyte(0));
Sc.print(" "); Sc.print(hex(b, 2));
if((hi) % 16 == 15) Sc.print("\n" + hex(hi + 1, 4) + " : ");
x = 0;
}
}
Если я правильно понимаю, эта часть обрабатывает форматирование вывода, что довольно удобно:
function inv(n)
{
return ~n & 0xFF;
}
function hex(n, i)
{
n = Number(n).toString(16).toUpperCase();
while (n.length < i) {
n = "0" + n;
}
return n;
}[/b]
Я думаю, что эта часть читает все, что находится в буфере, IE дамп:
function RX()
{
Sc.Delay(400);
x = Sc.BytesInBuffer;
Sc.Read(x);
}
Нужна ли еще функция End?
- Спасибо
Жалоба Записан

#### Shurik406

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

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

« Ответ #415: Пятница 27 Мая 2022, 16:30:25 »
Цитата(stefanvl от Пятница 27 Мая 2022, 16:23:38)

> В любом случае, запуск скрипта в таком виде дает ошибку в строке 1
> Неверная шестнадцатеричная цифра u в строке 1 входного файла

Это Javascript, а не VBScript...мне просто легче так. Создай новый файл xjs из WinExplorer и все заведется.
Цитата(stefanvl от Пятница 27 Мая 2022, 16:23:38)

> Я изучу скрипт, который вы предоставили выше. Форматирование выглядит немного иначе, чем все другие, которые я видел, что немного сбивает меня с толку, скобки и data = data + ...

Это что бы не мучатся считать сколько там байт в каждой строке, а то я всегда сбиваюсь со счета.
Сказали Спасибо: Ethereal, stefanvl
Жалоба Записан

#### Ethereal

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

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

« Ответ #416: Пятница 27 Мая 2022, 18:25:20 »
Цитата(stefanvl от Пятница 27 Мая 2022, 14:49:44)

> Trying to reset card...
> Reset Successful
> RX ATR : 3F 67 2F 00 11 14 00 03 68 90 00
> TX Data : CA C4 00 00 0A
> RX Data : C4 93 08 31 72 F4 F6 91 D9 74 5B 90 00
> TX Data : CA 48 00 00 0A
> RX Data : B7
> TX Data : 94
> RX Data : B7
> TX Data : 08
> RX Data : 48
> TX Data : CB BD CD 61 B8 3B 92 C9
> RX Data : 90 00
> Script Error on Line 26
> Sc.GetByte: Requested Byte Exceeds Last Read Request

Так работает тут у тебя. Команда CA48 ответила 90 00
значит авторизация прошла, значит ключ верный. А что ошибка
Sc.GetByte: Requested Byte Exceeds Last Read Request
так тебе прямо говорится что ошибка
Script Error on Line 26
во время исполнения 26-й строчки скрипта, но этого момента
в твоем логе нет, потому-что ты строчку
Sc.Verbose=False
из скрипта временно не убрал.
Ты лог показываешь в котором нет момента сбоя.
Как я догадаюсь в чем дело, если этого момента не вижу ?
Убери временно
Sc.Verbose=False
, еще раз сними лог и еще раз покажи.

Подумал(a) и добавил(a): Пятница 27 Мая 2022, 18:47:14

Цитата(Shurik406 от Пятница 27 Мая 2022, 15:38:30)

> И если дешифратор адресов 10-битный на карте Canal Digital,

Где я такое говорил ?
Я говорил биты 10 и 11 адреса игнорируется в данной области (спецрегистрово-RAM-овой 0..$FFF)
Цитата(Ethereal от Четверг 26 Мая 2022, 18:59:52)

> потому-что дешифратор адреса 10-й бит адреса игнорит
> в данной области адресов. И 11-й наверняка тоже

Т.е если адрес
0000 zzxx xxxx xxxx
тогда биты zz игнорятся
В результате 400..7FF 800..BFF C00..FFF - это три зеркала адресов 0..3FF и больше таких зеркал нет.
Но биты адреса 12 13 14 15 используются, так-что я не говорил и не намекал, что дешифратор адресов 10-битный. При определенных значениях старших бит адреса пара средних бит игнорируется - вот что я говорил.

Подумал(a) и добавил(a): Пятница 27 Мая 2022, 18:52:48

Цитата(Shurik406 от Пятница 27 Мая 2022, 15:38:30)

> А вот это нет. Почему если я сделаю jsr 90B4 на карте Скай, прыг не уйдет на 10B4?

Такое может быть ТОЛЬКО если в регистре счетчика команд pc только 13 младших бит физически существуют и переключаются, а старшие три перманентно читаются как 0. Такое тоже может быть, поэтому я и написал "Думаю, что ..."
Потому-что может быть и наоборот - все 16 бит pc физически существуют, но старших три бита адреса игнорятся дешифратором адреса.
Сказали Спасибо: balton, lift-man, Shurik406, stefanvl
Жалоба 212.109.29.221

#### stefanvl

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

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

« Ответ #417: Пятница 27 Мая 2022, 20:45:18 »
@Ethereal
Я тестировал без Sc.Verbose=False
' Eurocrypt-M PROM CAB0 dumper
Dim I, II, J, CHALLENGE, Adr, EPROM(&h1F00)
Set DES = CreateObject("Viades.object")
Sub Main()
Des.SetKey("23D56982F19420 00") ' Issuer MK extended by 00
Sc.Write("CA C4 00 00 0A"):RX
CHALLENGE=""
For I=3 To 10
II=Hex(Sc.GetByte(I)):If Len(II)=1 Then II="0"&II
CHALLENGE=CHALLENGE&II
Next
Sc.Write("CA 48 00 00 0A"):RX ' Set MK number as P2
Sc.Write("94"):RX
Sc.Write("08"):RX
Sc.Write(Des.Crypt(Des.EnCrypt,CHALLENGE)):RX
Adr=&h1E00
For I=&h780 To 0 Step -&h20
II = Hex(I)
While Len(II)<4
II = "0" & II
WEnd
Sc.Write("CA B0" & II & "00"):RX
For J=1 To &h100
EPROM(Adr) = Sc.GetByte(J)
Adr = Adr + 1
Next
Adr = Adr - &h180
Next
Sc.Print("------------------- PROM CAB0 DUMP -------------------")
For I=0 To &h1EF7
II = Hex(I)
While Len(II)<4
II = "0" & II
WEnd
If (I And &hF)=0 Then Sc.Print(vbcr & II & " : ")
II = Hex(EPROM(I))
If Len(II)=1 Then II = "0" & II
Sc.Print(II & " ")
Next
End Sub
Function RX
Sc.Delay(350)
Sc.Read(Sc.BytesInBuffer)
End Function
результаты:
Trying to reset card...
Reset Successful
RX ATR : 3F 67 2F 00 11 14 00 03 68 90 00
TX Data : CA C4 00 00 0A
RX Data : C4 93 08 B1 48 47 B9 DB D9 EA F9 90 00
TX Data : CA 48 00 00 0A
RX Data : B7
TX Data : 94
RX Data : B7
TX Data : 08
RX Data : 48
TX Data : 3F 12 95 13 FF F0 94 76
RX Data : 90 00
TX Data : CA B0 07 80 00
RX Data : B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF
Script Error on Line 25
Sc.GetByte: Requested Byte Exceeds Last Read Request
Спасибо
- Спасибо
Сказали Спасибо: balton
Жалоба Записан

#### Ethereal

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

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

« Ответ #418: Суббота 28 Мая 2022, 01:07:47 »
Цитата(stefanvl от Пятница 27 Мая 2022, 20:45:18)

> TX Data : CA B0 07 80 00
> RX Data : B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
> FF FF FF FF FF FF FF
> Script Error on Line 25
> Sc.GetByte: Requested Byte Exceeds Last Read Request

Здесь карта начала успешно выдавать дамп как ответ команды CAB0.
Она выдавала
- квитанцию B0
- 256 байт дампа
- статус результата команды 90 00
Но скрипт принял
- квитанцию B0
- только 246 байт дампа
и на этом прием закончился.
Почему закончился ? А потому что время вышло.
ОЧЕВИДНО, что скрипту просто не хватило времени принять все.
А значит вот здесь
Function RX
Sc.Delay(350)
Sc.Read(Sc.BytesInBuffer)
End Function
нужно задержку увеличить до
Sc.Delay(400)
а если с запасом, то до
Sc.Delay(500)
А самому до этого додуматься было сложно ?
Такие вещи как задержки и тайм-ауты приема обычно не являются
предметом обсуждения при публикации скриптов, потому-что
"соль и специи по вкусу". Глянь в лог и сразу видно недосолил ты
задержкой или нет. Каждый может настроить ее сам.
Сказали Спасибо: lift-man, stefanvl
Жалоба 212.109.29.221

#### stefanvl

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

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

« Ответ #419: Суббота 28 Мая 2022, 01:17:36 »
@Ethereal
Это сработало! Спасибо. Но, к сожалению, это не выявило никаких ключей. Я предполагал, что использование ключа эмитента 00 также откроет ключи. Возможно, я неправильно понял это.
- Спасибо
Жалоба Записан

Страницы: « 1 ... 40 41 42 43 44 » Вверх
« предыдущая тема следующая тема »
Перейти в:

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

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

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

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

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

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

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

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