Реклама:

С помощью программы MANIPEUR. BAS можно считывать и заиис ывать данные в память карт, разработанных на основе технологии немецкой TELEFONKARTE. Речь идет не только о картах, известных под названием EUROCHIP, но также и о картах предыдущего поколения, все еще широко испочьзуемых в ртазличных областях, в том числе и телекоммуникационными компаниями многих стран.

10 ВЕН - NANIPELR.BAS -

20 KEY OFF XLS :DEF SEG=0

30 SV=PEEK(6,H4O8)4-256.pEEK(SH409) для LPTT

"1 S2=PEEK(SH40A)+256.PEEK(&H4OB) для LPT2:

50 OUT S2.0 :E2=S2+1

60 IF (INP(E2) AND 64) о 0 THEN S=S1 :G0T0 100 70 OUT S2.128

BO IF (INP(E2) AND 64) <> 64 THEN S=S1 GOTO 100 90 S=S2 100 E=St1

110 OUT S,0:KEY OFF :CLS

120 PRINT"BcTaBbTe европейскую карту, зате* ьдхмтте <ENTER>" 130 INPUT Z$ XLS

140 PRINT"' Клавиша пробела: ускорить чтение

160 PRINT" Клавиша <+>: записать 0 в текущий бит"

160 PRINT' Клавиша <->: записать 0 в текущий бит с заеном"

170 PRINT" Нажать <ESC> для выхода : PRINT

180 OUT S, 252; OUT S.254

190 OUT S,252:0UT S.24B

200 FOR F=1 TO 16

210 FOR G=1 TO 8

220 FOR H=1 TO 4

230 OUT S.24B

240 0=IMP(E) :G0SUB 360

250 Z$=IMKEY$ :IF Z$="" THEN 250

260 IF Z$=CHR$(27) THEN OUT S.0:END

270 IF Z$=CHRJ(45) THEN 400

280 IF Z$=CHRJ(43) THEN 420

290 IF Z$=CHRS(32) THEN 310

300 GOTO 250

310 OUT S.250

320 MEXT H

330 PRINT" "; :NEXT G 340 PRINT :NEXT F 350 END

360 K= (D AND 12B) 370 IF K012B THEN PRINTT"; 3B0 IF K=12B THEN PRINT "0"; 390 RETURN

400 OUT S.252:0UT S,248:0UT S.250

410 FOR T=1 TO 50 :NEXT T

420 OUT S.252:0UT S.24BXUT S.250

430 FOR T=1 TO 50 :NEXT T

440 OUT S.24B

460 IF HIKEYJo " THEN 450

460 GOTO 250

470 REM (c)1995 Patrick GUEULLE

Эта программа рабвтает точно так же, как и MANIPT1G. BAS, но, кроме того, дает доступ к функции записи с заемом. Имеется возможность считывать 512 бит - количество, необходимое для обработки самых современных карт, - но адресное пространство может быть и меньшего размера (например, 128 в самых простых картах).

На рис. 4.10 показано, что считывание памяти европейской карты с интегральной микросхемой 3-го поколения (104 бита) обеспечивает вывод на экран четырех копий одного и того же блока из 128 бит, последние 24 бита которого всегда установлены в 1.

Первые 64 бита соответствуют зоне, доступной только для чте ния. Она называется зоной идстпигрикации и программируется на заводе. В нее заносится следующая информация: "номер кремния^

Программное обеспечение для европейских телекарт

Рис. 4.10. Распределение памяти первых европейских карт

(партии) - код данной интегральной микросхемы; "код страны", соответствующий телекоммуникационной компании, которая выпустила карту; "код изготовителя", идентифицирующий компанию -производителя карты. Остаток зоны занимает серийный номер, по которому иногда можно определить дату изготовления карты. Затем следуют счетчики единиц, причем первым расположен счетчик наибольшим весом (по 4096).

Три первых разряда этого счетчика всегда имеют значение 0. Первый заменяет плавкую перемычку, имеющуюся в картах GPM 256, и служит для того, чтобы переключить карту из режима персона-лизации (режима изготовителя) в режим применения (режим пользователя). Два других разряда тоже программируются на заводе и предназначены для тестирования карты, равно как и первые десять бит в зоне единиц у карт T1G.

Чтение более современных европейских карт дает результат, аналогичный представленному на рис. 4.11. Адресное пространство включает 512 бит, но на данном этапе биты, расположенные выше адреса 103, в большинстве случаев установлены в 1.

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

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

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

Если еще не все счетчики приняли значение 00h, их состояние можно изменить, расходуя единицы, которые, однако, никоим образом нельзя добавить в карту (это легко подтверждается). Чтобы преобразовать 1 в 0 - иначе говоря, израсходовать единицу — надо нажать клавишу + (плюс) на цифровой клавиатуре. Изменение не будет отображено на экране, поскольку данный разряд уже прочитан, а других возможностей уменьшения текущего состояния адресного счетчика, помимо досчета до нуля (либо по команде RESET, либо через переполнение), не существует.

Программное обеспечение для европейских телекарт

Рис. 4. П. Упрощенная структура памяти карт EUROCHIP

Если нажать клавишу - (минус) на цифровой клавиатуре, текущий разряд также примет значение 0, но одновременно восемь разрядов счетчика с меньшим весом примут значение 1. Этот механизм заема, благодаря которому число единиц может достигать нескольких десятков тысяч, срабатывает только тогда, когда обрабатываемый разряд не принадлежит счетчику с самым малым весом. Во всех остальных ситуациях нажатие клавиши - (минус) равнозначно нажатию клавиши + (плюс).

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

Блок чтения-записи 2-го поколения || Оглавление || Программа для карт T2G