А кто прокомментирует это?

Denis Kulashov (Denis.Kulashov@f434.n463.z2.fidonet.org)
Mon, 07 Dec 98 14:36:57 +0200

╔²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²┬Area : PVT.201
≥┘Forwarded by zLODEy (2:463/434)√²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
° From : Alexander Osovik, 2:463/201.298 (05 Дек 98 02:36)
° To : All
≤┘Subj : А кто прокомментирует это?
═²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
@MSGID: 2:463/201.298 36689c4b
@CHRS: IBMPC 2
@FWDFROM Alexander Osovik
@FWDORIG 2:463/308.298
@FWDTO All
@FWDSUBJ А кто прокомментирует это?
@FWDAREA KIEV.ATS
@FWDMSGID 2:463/308.298 36689a72
@TID: FastEcho 1.46 15724
=============================================================================
* Отфорвардил Alexander Osovik (2:463/201.298)
* Ария : KIEV.ATS (KIEV.ATS)
* От : Alexander Osovik, 2:463/308.298 (05 декабря 1998 02:27)
* Кому : All
* Тема : А кто прокомментирует это?
=============================================================================
Привет All!

А кто прокомментирует это?
И возможно лли так заломать карточку?

=== Цитирую файл UKRPHONE.TXT ===
║²▀▓■■■■╒▓■≥²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²
┐ ╨┐ ≥▀ ╨┐ ╨ ≥²²▀ ≥²²▀ ▀ ≥ ≥²²▀ ▀ ≥ ©²²▀
┐ ╨┐ ╨╨ ╨┐≥▄ ╨┐ ╨ ╨┐ ╨ ╨┐ ╨ ╨┐ ╨ °▀ ╨ ╨┐
┐ ╨┐ ╨╨ °² ▀ ╨≥²▄ ╨²²▄ °²²┴ ╨┐ ╨ ╨≤▀╨ °²²
┐ ╨┐ ╨╨ ╨┐ ╨ ╨╨ ╨┐ ╨┐ ╨ ╨┐ ╨ ╨┐≤┴ ╨┐
┐ ≤²²▄≤ ▄ ≤ ▄≤²² ▄ ▄ ≤ ≤²²▄ ▄ ≤  ²²▄
┐░■■■■■■■[ Copyright (c) M.A.N. ]■■■■■■■■■■╘

Как только злые дяди капиталисты из Министерства связи решили, что народу
жизненно необходимы платные городские телефонные автоматы, народ
(я в часности) потянулся к клавиатуре. Cобрав обрывки всяческой
информации по чипам Сименса (именно они юзуются у нас) я наскоро
напрограммировал вот этот самый UKRPHONE. Эта программа не увеличивает
количество минут в карточке и не определяет общее количество юнитсов,
но выводит карту памяти (128 байт), пишет нолики в область содержащую
количество юнитсов, показывает оставшееся время при правильном указании
общего количества телефонных единиц, а также содержит инструмент для
экспериментов , который позволяет указать, что именно необходимо выводить
на контакты чипа для записи в память. Для работы программы необходимо
соорудить девайс для подключения карточки к паралельному порту, имеющий
следующую распайку:

╙■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■▐
┐ ≥²²²²²²²²²²²²²²║²²²²²║²²²²²²²²²²²²²²²²▀ ┐ ┐
┐≥▄ ░▐...╙╘ ≤▀┐ ┐
┐╨ ░▐.╙╘ ╨┐ ┐
┐≈■■■■■■■■■■■■▐ ╙╘.░▐ ╙■■■■■■■■■■■■■■├┐ ┐
(IO) ■■■∙╡■■■■■■o ░■▓■╘...░■▓■╘ o■■■■■■╡∙■■■ (Clock) ┐
ввод| ┐╨ ┐.......┐ ╨┐ тики ┐
вывод ┐≈■■■■■■■■■■■■[ МикроЧип ]■■■■■■■■■■■■■■■├┐ ┐
┐╨ ┐.......┐ o■■■■■■╡∙■■■ (Reset) ╙■■■■■■>└
┐╨ ╙■▒■▐...╙■▒■▐ ╨┐ сброс ┐ ┐
┐≈■■■■■■■■■■■■╘...░▐.╙╘ ░■■■■■■■■■■■■■■├┐ ┐ ┐
( -) ■■■∙╡■■■■■o.............░▐ o■■■■■■╡∙■■■ (+) ┐ ┐
земля ┐≤▀...................░▐ ≥▄┐ плюс ┐ ┐
┐ ≤²²²²²²²²²²²²²²²²²²²²÷²²²²²²²²²²²²²²²²▄ ┐ питания ┐ ┐
░■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■╘ ┐ ┐
┐ ┐
┐ ┐
Правый край карточки>■╘ ┐
(IO) - подключается к сигналу BUSY - 11 контакт паралельного порта ┐
(с BUSY можно только читать,для записи необходимо через диод ┐
подключить BUSY на 2-ой разряд шины данных - 4 контакт,анодом на 4 ┐
катодом на BUSY) ┐

(-)- к корпусу (18-25 контакт) ┐
(Clock)- на 1-ой разряд шины данных (3 контакт П.П.) ┐
(Reset)- на 0-ый разряд шины данных (2 контакт П.П.) ┐
(+)- через диоды КД522 на 4-9 контакты П.П. ┐
катоды соединить и вывести на карточку,а аноды - каждый на ┐
свой контакт 4,5,...9. (программа устанавливает на этих контактах ┐
по 5В) ┐



■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■╘
ВHИМАHИЕ: В старых телефонных карточках (серебристые или
прямоугольные контакты) читаются только первые четыре байта, которые
содержат зашифрованный пароль доступа к остальной части.
Моя программа не ломает этот пароль, и выводит только первые четыре байта.

А теперь немного о том, как работает эта программа. Для чтения на карточку
подается питание а затем на контакты Reset и Clock выдается следующая
последовательность уровней:

╙■■■■■■■■■■■■■■■■▐
Reset:■╘ ░■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

╙где то в этом месте на IO выводится первый бит
╙■■■■■■■■▐ ╙■■■■▐ ╙■■■■▐ ╙■■■■▐
Clock:■■■■■■╘ ░■■■■╘ ⌠■■■■╘ ░■■■■╘ ░ ......
┐ ░а здесь второй, ну и т.д.
╙■■■■■■■■■■■■■■╘
Сигнал по эту точку биты выводятся в порт после
является сбросом вну- каждой последовательности Clock=high,Clock=low,
треннего счетчика начиная с самого первого Clock-a.
Hа контакте IO он держится до следующего высокого
уровня сигнала Clock

При записи пароля сброс происходит как обычно, затем читаются первые четыре
байта , а после этого на IO должны поступать биты пароля
(число которых неизвестно), и только после этого идет чтение
(указанным выше образом но уже без сброса) остальных битов.

Память выводимая с новых карточек (на которых по крайней мере чтение не
защищено) состоит из следующих частей:

Смещение: Длина (байт): Содержимое:

0000 0004 ну очень шифрованный пароль
0004 0004 похоже на также зашифрованную дату,может быть
еще общее количество юнитсов (в одинаковых
по времени карточках эти байты совершенно
разные).
эти 8 байт не изменяются!

0008 0005 Стеги содержащие оставшееся количество
времени, на карточках разной емкости значения
этих байтов одинаковые.

в этих байтах биты можно установить в 0 (кстати в автомате тоже можно)

000D 0001 Байт = 0FFh изменить который нельзя
000E 0002 Байты также содержат 0FFh но могут изменятся
(правда только один раз...).

... да вот еще, что - когда мы читаем данные с BUSY то получаем
инвертированное значение, учтите это.

Теперь настало время рассказать о записи:
Сигналы записи по "инструкции" якобы должны идти с задержкой минимум
10 мс, но на практике можно использовать и меньше.

1 вариант (всего 2):

после того как счетчик прокручен до необходимого значения
(прокрутить его можно процедурой чтения), на контакты Reset и Clock
выдается следующая последовательность сигналов:

╙■■■■■■▐
Reset:╘ ░■■■■■■■■■■■

╙■■■■■■▐
Clock ■■■■■■■╘ ░■■■■

в момент когда Clock опустился происходит обнуление выбранного бита,
при этом значение на IO указывает правильно ли записан этот бит
если 0 то правильно если нет то ...беда.

2 Вариант:

Эта последовательность сигналов служит для обнуления байтов.
Hапример мы хотим обнулить байт стега с номером n (первый стег не
обнуляется ...наверное), предположим также, что существует такая
последовательность байтов (bin) #n-1 = 1111000,#n = 11111110
для обнуления n необходимо установить ближайший к старшему разряду байта n,
единичный бит в 0 (в данном случае это 3 бит байта n-1), при помощи
специальной последовательности:

╙■■■■■■▐ ╙■■■■■■▐
Reset:╘ ░■■■■■╘ ░■■■■■■■■

╙■■■■■▐ ╙■■■■■▐
Clock:■■■■■■■╘ ░■■■■■■╘ ░■■

При этом байт n обнулится.

P.S. Если и есть еще какие-либо последовательности я их не знаю,
может вы догадаетесь, а так пока все.

=== Конец цитаты ===

Alexander [Team Cats]

---
 *
Origin:=============================================================================

Привет All!

Alexander [Team Cats]

---
 + Origin:  (2:463/201.298)
SEEN+BY: 463/131 166 175 177 180 201 209 211 213 216 246 268 274 322 326 331
SEEN+BY: 463/374 416 434 505 520 527 531 556 564 606 616 659 997 1998 6969
SEEN+BY: 463/9797 4613/7 204
@PATH: 463/201 1998
 ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

Hello Andrey!⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡╚╚╚╚╚╚╚╚ > ╚╚╚╚╚╚╚╚

CC: Andrey Gerzhov, Dima Turchin

. . . Denis AKA zLODEy //enjoy oneself...

... Учиться, учиться и еще раз учиться (C) не помню