Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 64261
Модуль Forms 63998
Пример работы с... 61137
ТЕХНОЛОГИИ ДОСТ... 60862
Имитационное мо... 56409
Реклама
Сейчас на сайте
Гостей: 7
На сайте нет зарегистрированных пользователей

Пользователей: 13,080
новичок: setan
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Сравнение двух бинарных деревьев на Turbo Pascal + отчет
Моделирование литейного цеха на GPSS + Пояснительная записка
Моделирование станции технического обслуживания на GPSS + Отчет

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Фрикинг таксофонных карточек
Не так давно на Российского потребителя обрушился целый поток
новых платежных средств: таксофонные карты, магнитные карты метро,
банковские карты. Коснемся пока только таксофонных карт. Наверное,
каждый задавался вопросом, как же устроена и как работает таксофонная
карта, и можно ли ее обмануть. Ответ на второй вопрос пока умолчим, а
вот на первый попробуем ответить в доступной и популярной форме. Раз-
говор пойдет конкретно про таксофонные карты компании «Санкт-Пе-
тербургские таксофоны». Для других карт приведенная информация мо-
жет не соответствовать действительности.
Таксофонная карта соответствует международному стандарту ISO
7816 в части 1 и 2.
ISO 8716-1:1987 Карточки идентификационные.
Карточки на интегральных схемах с контактами.
Часть 1. Физические характеристики.
СТК 1 код В 4 с. изд.1
ISO 8716-2:1988 Карточки идентификационные.
Карточки на интегральных схемах с контактами.
Часть 2. Размеры и расположение контактов.
СТК 1 код D 7 с. изд.1
Кристалл на карте представляет собой электрически программиру-
емое ПЗУ с последовательным побитным выводом информации, изготов-
ленное по технологии NMOS. В этом ПЗУ используется 128 бит. Для то-
го, чтобы перепрограммировать карту, нужно стереть информацию из
ПЗУ, но чип защищен от ультрафиолетового облучения специальной
смолой. Даже если вам удастся стереть чип, то нужно будет перепрограм-
мировать специальную область производителя — первые 64 бита, а она за-
щищена от записи плавким предохранителем, который пережигается на
фабрике при производстве чипа. Основной способ обмана таксофонов —
изготовление эмуляторов, то есть устройств", эмулирующих работу насто-
ящей карты. Это довольно легко сделать на современных однокристаль-
ных микроЭВМ. Основной способ защиты таксофонов от таких эмулято-
ров — измерение межэлектродных сопротивлений, емкостей и сравнение
их с номинальными, что позволяет таксофону отличить эмулятор от
настоящей карты.
Чтение информации с карты
Внутри карточки находится счетчик адреса разрядностью 9 бит. То
есть после чтения каждых 512 бит все начинается сначала. Счетчик может
быть только увеличен. В случае, если вы хотите считать бит с адресом
меньше текущего, то счетчик нужно сбросить в 0, а затем увеличить до не-
обходимого значения. Операция сброса выглядит так: Надо установить
высокий уровень сигнала Reset (2 контакт карты), а затем установить и
сбросить сигнал Clk. После сброса сигнала Reset на выходе (7 контакт кар-
ты) будет доступен бит с адресом 0.
Теперь нужно подавать тактовые импульсы на вход Clk (3 контакт
карты). По фронту импульса происходит увеличение на единицу внутрен-
него счетчика адреса. По спаду тактового импульса следующий бит дан-
ных появляется на выходе. Обычно удобнее представлять информацию в
виде байтов. Для этого каждые 8 считанных бит группируют в байт, счи-
тая, что первым считывается наименее значащий бит. В итоге, последова-
тельно считывая 1,0,0,1,0,1,1,1, получим байт ОхЕ9.
Чтение через параллельный порт компьютера
Поскольку все сигналы соответствуют уровню ТТЛ, то логично ис-
пользовать для чтения информации обыкновенный принтерный порт. Не
думаю, что надо приводить здесь полное техническое описание работы
параллельного порта, назначение контактов и описание портов ввода-вы-
вода — это все можно найти в специальной технической литературе.
Аппаратные средства
Аппаратные средства представляют собой ответную часть разъема
параллельного порта, кусок монтажного провода и считывающее устрой-
ство, которое может представлять собой обыкновенный кусок текстолита
с отверстиями, в которые вставлены штырьки. Правда, в этом случае кар-
точку надо будет прижимать руками.
Программные средства
Используем порт LPT1. Запись в принтерный порт осуществляется
через порт 0x378. Записанный байт появляется на выходных контактах.
Мы используем бит 0 для сигнала Reset и бит 1 для сигнала Clk. Чтение
выполняется через порт 0x379. В самом старшем бите появится инверти-
рованное значение с входного контакта 11 (Busy).
Что именно записано на карте
Теперь мы и подошли к самому интересному месту — назначению
каждого бита, записанного на карте. Естественно, что на картах других го-
родов это назначение будет другим, но мы, как обещали, говорим о пи-
терских карточках. На карточке используются только 16 байт. Все осталь-
ные равны OxFF. В процессе исследований было проанализировано око-
ло 300 карточек.
Примеры дампов памяти карт
• Эта карта на 50 единиц закончилась. Номер 0050415503.
Годна до 30.09.98
Е9, 30, FF, 01, F1, Е2, 80, СО
00, 00, 00, 00, 00, FF, 18, ЕА
• Эта карта на 400 единиц также пуста. Номер 0400155921.
Годна до 30.09.98
Е9, 30,- FF, 01, 88, А7, 9В, Е8
00, 00, 00, 00, 00, FF, D9, 79
• Вот карта на 1000 единиц. Осталось 998. Номер 1000013039.
Годна до 31.12.99
Е9, 30, FF, 01, F7, 3F, 59, DC
00, 01, 7F, OF, 3F, FF, 68, 6В
• Потом я позвонил по этой карте. Осталось 6 единиц.
Е9, 30, FF, 01, F7, 3F, 59, DC
00, 00, 00, 00, 3F, FF, 68, 6В
• Наконец, она закончилась.
Е9, 30, FF, 01, F7, 3F, 59, ОС
00, 00, 00, 00, 00, FF, 68, 6В



Назначение полей
ф Первые 4 байта — какой-то идентификатор. На всех картах
Е9, 30, FF, 01.
• Следующие 4 байта — серийный номер карты. Расположив
биты в байтах в обратном порядке, а затем и сами байты,
получим 32 разрядное целое без знака. К примеру, байты F7,
3F, 59, DC с обратным порядком бит выглядят как EF, FC,
9А, 3В. Получим номер карты Ox3B9AFCEF или 1000013039
в десятичном виде. Нетрудно заметить, что номер,
напечатанный на карте, всегда состоит из 10 цифр, а первые
4 цифры — емкость карточки.
• Следующие 5 байт — количество единиц, оставшихся на
карточке. Формат хранения очень интересный: используется
количество единичных битов в байте, начиная с младшего.
Соответственно значение байта 07 соответствует 3
единицам, значение IF — пяти, a 7F — семи единицам.
Максимальное количество единиц, хранящихся в байте —
семь. Соответственно используется восьмеричная система
счисления. В итоге, байты 00, 01, 7F, OF, 3F соответствуют
01 746 в восьмеричной системе или 998 единиц в десятичной
системе. Максимальное количество единиц может
выражаться числом 77777 в восьмеричной или 32767 в
десятичной системе.
• Следующий байт всегда равен FF. Похоже, он не
используется.
ф Два последних байта, по-видимому, выражают CRC или
другой контрольный код для первых 8 постоянных байт, так
как при расходовании единиц они не меняются, но на
каждой карточке они свои. Пока их назначение не ясно.
Обнаружилось, что срок годности не записан на карте. По всей ви-
димости, он как-то связан с номером карты. Возможно, каждому сроку
годности соответствуют определенный диапазон номеров.
Как уже говорилось, из 10 цифр номера первые 4 выражают емкость
карты. Оставшиеся 6 не идентифицируют карту однозначно, так как уже
выпущено более миллиона карт. Всего при подобной системе нумерации
может существовать 6 миллионов карт:
• ' На 25 единиц с номерами от 0025000000 до 0025999999
• На 50 единиц с номерами от 0050000000 до 0050999999
• На 100 единиц с номерами от 0100000000 до 0100999999
• На 200 единиц с номерами от 0200000000 до 0200999999
• На 400 единиц с номерами от 0400000000 до 0400999999
• На 1000 единиц с номерами от 1000000000 до 1000999999
Устройство для чтения/записи магнитных карточек
Для изготовления устройства, которое, разумеется, можно приме-
нять не только для чтения, но и записи магнитных карточек, удобно ис-
пользовать готовый лентопротяжный механизм магнитофона или плейе-
ра. Карточка при этом протягивается так же как и лента, между тонвалом
и тонроликом. Но надо иметь в виду — металлический тонвал проскаль-
зывает по пластиковой поверхности телефонной карточки. Автор одел на
тонвал тонкую ПВХ трубочку от изоляции импортного экранированного
провода, предварительно окунув ее в ацетон. После высыхания ацетона
можно включить моторчик ЛПМ и подшлифовать внешнюю поверхность
трубки мелкой иаждачкой. Подготовка приводного вала — очень важный
момент! Именно от вала в основном зависит равномерность скорости по-
дачи карточки. Впрочем, остальные узлы тоже требуют аккуратности. Не-
смотря на это, устройство полностью можно изготовить за пару выходных
дней.
После подготовки вала нужно изготовить направляющий тракт. Его
конструкция зависит от конкретного ЛПМ. В качестве исходного матери-
ала можно использовать двухсторонний фольгированный стеклотексто-
лит. Его легко обрабатывать и соединять детали пайкой, без допол-
нительных крепежных деталей. В конструкции используется пара
светодиод-фотодиод для регистрации моментов начала и окончания про-
хождения карточки через ЛПМ. Необходимо учитывать, что запись начи-
нается примерно в 3 мм от края карточки и располагать головку так, что-
бы тонвал успел захватить и начать протаскивать карточку до того, как
начало записи окажется в рабочей зоне головки. Примерно в этот же мо-
мент должен срабатывать и оптодатчик. У меня карточка после прохож-
дения ЛПМ по инерции проскакивает дальше и открывает оптодатчик
снова. Но лучше поставить второй оптодатчик на окончание карточки,
чуть правее оси магнитного зазора головки.
Особую сложность представляет только узел крепления головки,
так как надо прижимать головку к карточке, а не наоборот. Площадка с
прикрепленной к ней головкой равномерно прижимается четырьмя пру-
жинками. Прижимное усилие должно быть небольшим, так как магнит-
ный слой намагничен очень сильно. Сохранена возможность регулировки
азимута головки. Провода, идущие от головки — тонкие неэкранирован-
ные, не должны мешать смещению площадки с головкой. Они подведены
к контактным площадкам недалеко от головки. Далее идут экранирован-
ные провода. Моторчик питается непосредственно от 5-вольтового на-
пряжения питания всей схемы. Моторчик от плейера обеспечивает при
этом необходимую скорость движения карточки. Помехи легко шунтиру-
ются керамическим конденсатором, расположенным на выводах
Моторчика.
Опубликовал Kest January 07 2009 00:15:53 · 0 Комментариев · 6694 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Библиотека програ...
PHP 5 в подлинник...
Пример создания W...
Web Регистрация
Программа для рис...
Система баннеро-о...
Рисование PopupMenu
Использование Lis...
Сапёр
Swing. Эффектные...
Алгоритм трассиро...
Конвертирование и...
Реализация ЭЦП по...
CoolDev TipsSyste...
Пользовательская...
XPcontrol
TMS
Игра "Астероиды" ...
Платформа програм...
Дарахвелидзе П., ...

Топ загрузок
Приложение Клие... 100455
Delphi 7 Enterp... 86165
Converter AMR<-... 20072
GPSS World Stud... 12525
Borland C++Buil... 11616
Borland Delphi ... 8526
Turbo Pascal fo... 7035
Visual Studio 2... 4992
Калькулятор [Ис... 4744
FreeSMS v1.3.1 3539
Случайные статьи
Другие режимы базо...
Функция GetDriverN...
Вычисление суммы ч...
10-9):Табл
Манипуляторы
UNLINK (ВЫВЕСТИ ИЗ...
Устройство беспере...
Итератор end
Таблица хэшировани...
РЕШЕНИЕ: МОДЕЛИРОВ...
Комбинирование соб...
Аппаратные IP-теле...
Настройка одиночно...
Специальные функци...
Заголовок программы
ЭЛЕМЕНТЫ ПРОЦЕДУРЫ...
Модуль IFrame. Мод...
Разработка своими ...
Уроки Python для н...
Записи
29.100.
Замена защитного э...
Программисту нужно...
Как сделать анализ...
Ограничения на дли...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?