Реклама ⓘ
Главная » Телефония
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Эмулятор таксофонной карты (часть 4)

Ну а теперь перейдем от теории к практике. И первым нашим шагом будет сборка ридера карточки (card reader), т.е. считывающего устройства. Наиболее простым вариантом является сборка ридера для подключения его к LPT-порту компьютера. Схема элементарна. Дальше следует написать простейшую прогу, которая будет считывать с карточки инфу и выдавать ее в более или менее удобочитаемом виде. Пример такой программы приведен ниже.

program Phonecard_reader;
uses Crt;
const
LPT=$378; {Базовый адрес порта LPT}
del=1; {константа задержки в 1 мс}
procedure Clk(v:byte); {Clk(1) - устанавливает высокий уровень CLK
Clk(0) - устанавливает низкий уровень CLK}
var
tmp:byte;
begin
tmp:=Port[LPT];
if v=0 then
tmp:=tmp and $FE
else
tmp:=tmp or 1;
Port[LPT]:=tmp;
end;

procedure Reset(v:byte); {Reset(1) - устанавливает высокий уровень RST
Reset(0) - устанавливает низкий уровень RST}
var
tmp:byte;
begin
tmp:=Port[LPT];
if v=0 then
tmp:=tmp and $FD
else
tmp:=tmp or 2;
Port[LPT]:=tmp;
end;

function GetData:Byte;
var
tmp:Byte;
begin
tmp:=Port[LPT+1];
if tmp=120 then
GetData:=1
else
GetData:=0;
end;

procedure SetData(v:byte);
var
tmp:byte;
begin
tmp:=Port[LPT];
if v=0 then
tmp:=tmp and $FB
else
tmp:=tmp or 4;
Port[LPT]:=tmp;
end;

var
arr:array[0..1024] of byte;
idx:word;
f:text;
begin
assign(f,'con'); {По умолчанию вывод идет на экран. Вместо con
можно поставить имя файла, и вывод будет
направлен в него}
rewrite(f);
idx:=0;
textmode(Font8x8 or CO80);
clrscr;
Clk(0);Reset(0);delay(del);
Reset(1);delay(del);
Clk(1);delay(del);Clk(0);delay(del);Reset(0);delay(del);
repeat
begin
if (idx mod 8)=0 then
write(f,#13#10+'Byte ',(idx div 8):2,' :')
else
if (idx mod 4)=0 then
write(f,' ');
Clk(1);delay(del);
arr[idx]:=GetData;
Clk(0);delay(del);
write(f,arr[idx]);
inc(idx);
end;
until idx=1024;
while keypressed do readkey;
writeln(#13#10'Press any key to exit ...');readkey;
close(f);
end.

Для тех, кто весьма ленив и не любит топтать клавиатуру, могу порекомендовать готовую прогу, называемую SmartLab. Комменты, как говорится, излишни. Вся дополнительная информация находится в help-файле этой проги. Ну, а теперь разберем, что же означают все эти байтики, болтики и винтики, которые мы выгребли из карточки. (Несущественные данные пропущены).

Байт Биты Значение/Описание
1 1-8 D8 старые карты
DD новыекарты
2 9-16 код страны
5 33-36 номинал карточки
5 37-40 последняя цифра
года выпуска
6 41-44 № месяца выпуска
6-9 45-64 серийный номер
9 65-72 4096* NBS единиц
10 73-80 512* NBS единиц
11 81-88 64* NBS единиц
12 89-96 8* NBS единиц
13 97-104 1* NBS единиц (NBS-число установленных битов)
14-40 105-320 FF - проверочная область

Итак, можно выделить следующие информационные области на карте: заголовок, счетчик и фуфел. Заголовок содержит 40 бит информации, которые жестко программируются изготовителем карт. Обычно эта область содержит чисто служебные данные, которые в принципе нам нужны только для информативности. Следует иметь в виду, что некоторые производители в битах 36-64 пишут копию даты выпуска и серийного номера. Кроме этого, интересной фишкой является то, что первыми четыремя цифрами серийного номера всегда будет дата выпуска, т.е., 0600 будет означать июнь 2000 года. Назначение счетчика понятно: вначале все биты установлены в 00, потом как только таксофон "съедает" единицу времени, соответствующий бит принимает значение FF. Проверочная область - область, на которой производитель проверяет работоспособность чипа. И, наконец, все, что находится после 40 байта, не имеет для нас никакого значения. Последние две области и есть тот фуфел, который только мешает и вносит кучу неразберихи в этот вопрос.

Значение счетчика определяется по следующему принципу:

Байт   9   10   11   12   13

8-езначение 00000001 00011111 01111111 00000011 00011111

10-езначение   1   5   7   2   5

Переводим из 1*8^4 + 5*8^3 + 7*8^2  + 2*8^1  + 5*8^0

8-й СС в 10-ю 4096 + 2560 +   448   +  16   + 5   =7125

Воспользовавшись этой статьей, ты можешь считать свою карту и понять, что, как и где находится именно в твоей карте. По служебной информации ты также при желании сможешь определить тип чипа. На этом наш подготовительный этап заканчивается, и следующим нашим шагом будет построение эмулятора карты.

Читал, читал, прикольно, что дети в песочнице ;) Эмулятор на PIC:) Может в этом регионе ещё "чугунки" висят. Скорее всего, в качестве проца 89С51 стоит с кварцем 4МГц. С этим тормозом вполне и ATiny справится на 1МГце. У нас (Украина) уже давно перешли на SLE4436 + используют алгоритм аутентификации SLE (посмотрю, как вы его обходить будете:). Странно, что в Москве ещё это не сделали. А может сделали, да господа фрицкеры-хацкеры не могут трафик карта-таксофон снять? Это же не журнал Phrack Magazine читать, верно? С теми скоростями, на которых "наши" "Телекарт-10..." работают с картой, PIC даже "турбированый" на 20МГц подохнет в момент - НЭУСПЭЕТ. Да он и по подаче питания завалится. Время внутреннего сброса после PowerUP, а ну, глянули в pdf. Пока очухался, а на экране надпись - ошибка чего-то там. Будешь ломиться дальше, достучится таксофон до "Сириуса" и заложит по V.23 - бац, милиция :) А вот тов. Молот чего-то там грозился по поводу вашего метро (у вас чего - карточки одноразовые?). Господа, зайдите на http://www.geocities.com/phreak_ua и посмотрите на дату создания сайта. А только 3 дня назад Харьковсий метрополитен сменил алгоритм кодирования. 2 месяца все грамотные люди ездили на халяву. На метро никаких эмулей, сесть можно (условно). А вот тов. из Болгарии xakep_bg@xakep.com чего-то там считать не может. В Софии эмулятор стоил нашим 100$ и звонили земляки прямо с уличного таксофона на родину. В БулФон-овских картах используют только 16 байт без аутентификации чипа, если б я имел возможность снять трафик, то своим на халяву б сделал эмуль вечный :) Тов.3st st3791305@yandex.ru "ищет программатор для таких (и похожих) карт (soft)" А сам написать не может. Крут однако:) Это чего - реликт I2C. Господа, нечего программировать!!! Счётчик разве что уменьшать, в документации на SLE (полной) указано, что после смены режима карты на "рабочий", счётчик уже не восстановить. Насчёт посветить ультрафиолетом. В далёком детстве пытались на I2Cшных. Всё байты 0xFF стали, и чего дальше - карта заблокирована. Не думайте, что в СИМЕНСе или ТОМСОНе дурачки сидят. Поверьте, эмуль пишется под конкретный таксофон, а не под стандарт передачи данных (ISO7816-2). У каждого таксофона (прошивки) свой вывих и универсальный эмуль для всех тяжко сделать. Смотришь на трафик и пишешь, пробуешь, не работает и т.д. Лана, пойду пивка ещё возьму, удачи вам. Oopser Jesus mailto:phreak_ua@yahoo.com

Очень интересно! Я пытался с этой чёртовой карты считывать, но предполагал, что у неё банальный I2C.... Кстати, в "Буром Медведе" валяются считыватели для телеф. карт!!! Очень удобно - не надо в процессе отладки удерживать провода на контактах!

Господин Reanimator, надеюсь вы предложите эмулятор не на -discrete elements-, а на однокристалке? Сам же я уже месяц юзаю собственный, собранный на F84 (прошивка для карт 3 поколения), помогло мне это собрать 2 вещи: book about F84 (Ormix) и номер журнала Phrack Magazine 48-10 & 48-11 (для карт 2 поколения). Да, кстати, как вы собираетесь обойти металлодетектор установленный в каждом карточном таксофоне (100%-я информация). Ответ в Phrack'e.

Что-то слабо верится, что в ISO 7816 так были записаны данные. В частности, в ST1305 всего 192 бита памяти.

тут есть один вопросик. Не так давно в Ростове н/Д поставили новые таксофоны, называется "таксофон универсальный телекарт - 101" такой железный, синенький. Так вот если во время того как на нем высвечивается надпись после поднятия трубки "Пожалуйста подождите" нажать 9 и после запроса о вводе кода ввести 999 он входит в тестовый режим.

none Опубликована: 2002 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Лазерный модуль 650нм 5мВт
Лазерный модуль 650нм 5мВт
Набор для сборки - LED лампа Набор начинающего радиолюбителя
вверх