Реклама:

10 REM - GPM416.BAS -M 20 KEY OFF :CLS :DEF SEG=0

30 S1=PEEK"H40B)+256-PEEK(5H409) для LPT1' 40 S2=PEEK(Sh40A)+256.PEEK((JKCB) aiF LPT2 50 OUT S2.0 :E2=S2+1

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

B0 IF (INP(E2) AND 64) о 64 THEN S=S1 :G0T0 100 90 S=S2

I TOO E=S+1:0UT S.O 110 DIM BJ(416)

120 PRINT'Вставить карту GPN 416. иатем пахать <ENTER 130 INPUT z$ 140 CLS

[150 OUT S,4:0UT S,0 И60 FOR 1=1 TO 416 §70 OUT S.O

i180 D=INP(E) :D= (D AND 12B) (90 IF D=12B THEN Bt(I)= "0' ECO IF 0O12B THEN Bt(I)="1" B10 OUT S,2 220 NEXT I 230 N=1

240 FDR F=1 TO 13 250 TOR G=1 TO 6 260 FOR H=1 TO 4 I 270 PRINT BS(N); :N=N+1 260 NEXT H

I

290 PRINT" ; :NEXT G 300 PRINT :NEXT F

310 PRINT : PEINT : PRINT'Для сохранения ввести имя файла и нажать <ENTEB>"

320 PRINT :PRINT"Be3 сохренения: сменить карту и нажать <ENTER>"

330 PRINT : PRINT : INPUT Z$

34D IF Z$=" TNEN 140

350 FDR F=1 TO LEN(ZS)

3B0 IF HID$(ZJ.F.1)="■" THEN 39D

37D NEXT F

3B0 Z$=Z$+".CAR"

390 OPEN It FOR OUTPUT AS "1

400 N=1

410 FOR F=1 TO 13 420 FDR G=1 TO В 430 FDR H=1 TO 4 440 PRINT"1, B$(N)t" "": :N=N+1 450 NEXT H

460 PRINTB1," "; :NEXT G

470 PRINTB1, :NEXT F

4B0 CLOSEm : PRINT ::G0T0 120

490 REN (c)1993.1995 Patrick GUEULLE

GPM416. BAS позволяет вывести на экран состояние всех 416 бит -полного объема памяти карты GPM 416. В принципе эта программа может создать и соответствующий файл с расширением .CAR. Поскольку данный тип карт имеет защищенную память, некоторые из битов могут быть считаны только после ввода неизвестного абоненту секретного кода. Зачастую он автоматически выдается устройством чтения-записи. Поэтому, если нужный код не был введен, защищенные биты будут представлены 1, независимо от их истинного состояния (в таком случае говорят, что они "маскированы*). На рис. 4.13 показан внешний вид кристалла микросхемы, которой оснащаются карты GPM 416.

В табл. 4.3 приведены правила, определяющие порядок доступа к различным зонам памяти в зависимости от параметров ее защиты.

Ниже показан результат считывания телекарты TAAF (Terres Australes et Antarctiques Françaises - Заморские и Антарктические Земли Франции), которая разработана компанией Landis et Gyr на базе GPM 416 и которую владелец может "перезаряжать".

0001 1001 1111 1111 0000 0000 0000 1110

0000 1000 0000 1100 0000 0000 1111 1111

1111 1111 1111 1111 0111 1111 1111 1100

0000 0000 0001 1001 1100 0000 0000 0001

Чтение карт GPM 416

Рис. 4.13. Кристалл 57 1301 карты СРМ416 (увеличено а 50 раз)

1001 0011 0111 0010 1111 1111 1111 1111

1111 1111 1111 1111 1111 1111 1111 1111

■111 1111 1111 1111 1111 1111 1111 1111

1111 1111 1111 1111 1111 1111 1111 1111

1111 1111 1111 1111 1111 1111 1111 1111

1111 1111 1111 1111 1111 1111 1111 1111

1111 1111 1111 1111 1111 1111 1111 1111

10111 1111 1111 1111 1111 1111 1111 1111

1111 11111111 11111111 1111 1111 1111

10 ВЕЫ - DEC.116.BAS -20 КЕУ 0РР :С1.8

30 генТГИмя анализируемого САР-файла":

40 ШРОТ N5

50 1Р N5="' ТНЕЫ ЕМ)

60 РОВ Р=1 ТО |.ЕН(М$)

70 1Е МЮ${М.Е.1)=~. ТНЕЫ 100

,В0 Г<ЕХТ Р

90 N1=14*-. (Ж

100 ОРЕМ N1 ГОР ШРОТ АБ "1

110 ИН И(416>

1120 Р№ Р=0 ТО 415

130 тИЛ"1.0 :Н(Е)=0

140 ИЕХТ Р

150 С1£

""О РРШ"Зона изготовителя: "•

Таблица 4.3. Правила доступо к карте СРМ 416

Режим использования {плавкая перемычка разрушена)

 

Чтение

Стирание

Запись

Зона изготовителя

Да

Нет

Нет

Зона владельца

Нет

Нет

Секретный код карты

Нет

rja,erJiwCSC = 1

Да, emiCSC= 1

Счетчик ошибок

Да

Да, если CSC = 1

Да

Зона, защищенная

     

секретным кодом

Да

Да,еслиС5С = 1

Да, ecfmCSC=1

карты

     

Рабочая зона

Да, если RDEN = 1 или CSC = 1

Да,єслиКС= 1. CSE=1hK=1

Да. если PBEN = 1 иСЬТ>1

Секретный код

     

для стирания рабочей зоны

Нет

Нет

Нет

Счетчик стираний рабочей зоны

Да

Нет

Нет

Режим персонализации (плавкая перемычка не разрушена)

 

Чтение

Стирание

Запись

Зона изготовителя

Да

нет

Нет

Зона владельца

Да

Да, если CSC = 1

Да. ecfmCSC=1

Секретный код карты

Нет, если CSC = 1

fla,eoiHCSC=1

Да, если CSC" 1

Счетчик ошибок

Да

fla,ecmCSC=1

Да

Зона, защищенная

     

секретным кодом

Да

Да. если CSC " 1

Да. eaiHCSC=1

карты

     

Рабочая зона

Да, если RDEN = 1 илиСЭС = 1

0a,ecmCSC=1

fia,ecnnCSC= 1

Секретный код

     

для стираний

Да. если CSC = 1

Да. если CSC- 1

Да. ecfmCSC=1

рабочей зоны

     

Счетчик стираний ^рабочей зоны

Да. если CSC = 1

Да

CSC: CSC = 1 после вве;

іения правильного секретного кода карты в данном

еаксе

РнВЧ: внутренний регистр, размещенный в 1-м бите рабочей зоны, запрещает запись в зоне

Н0Р"М: внутренний регистр, размещенные во 2-м бите рабочей зоны, запращэет доступ

к рабочей зоне при чтении без предварительного

леденил секретного кода карты

CSE: CSE = 1 после введения правильного секретного кода для стираний

СЕ: СЕ = 1, пока счетчик стираний еще не заполнен (< 64)

170 B=0:E=15:GOSUB 520

18' PRINT fi$

190 PRINT'Зона И'мальці

g00 e=16'.E=63'.G0SUB 520 210 PRINT fi$

220 PRINT'Маска секретного кода: 230 B=64:E=79:G0SUB 520 240 PRINT"C4eT4HK ошибок: 250 B=80:E=95:G0SUB 520 260 PRINT 6$

270 if LEFT$(h$, 1)="F' THEN PRINT'Предыдущий код введен правильно" 280 IF LEFT$(H$. 1)="7" THEN РР1гЛ"'Предыдущий код введен с ошибкой" 290 IF LEFT$(H$,1)='3" THEN FRINT'flBa последних кода введены с ошибкой" 300 IF LEFT$(H$,1)="1" THEN PRINT"Три последних кода введены с ошибкой' 310 IF LEFT$(H$.1)="0' THEN print'Четыре ошибочных кода: карта блокируется" 320 PRINT :PRINT"3aL^ueHhaH зона: "; '330 B=96:E=111.G0SUB 520 340 PRINT В$

350 PRINT "Рабочая зона: ": 360 6=112:E=319:G0SUB 520 370 PRINT С$; 3B0 PRINT 6$

390 PRINT "PREN = ';М(176), 400 PRINT "R0EN =";N(177) 410 PRINT :PRINT"NacKa кода стирания' 420 B=320:E=351:G0SUB 520 430 PRINT"C4eT4HK стираний: " 1440 B=352:E=415:G0SUB 520 450 PRINT 6$ 460 R=0

470 FOR F=352 TO 415 I 460 IF M(F)=0 THEN r=R+1 [490 NEXT F

500 PRINT "Произведено:"r; стираний, осталось: ";64-R I 510 END

|520 H=0:fl$='":C$='":H$="' :K=0:F01i F=B TO E

530 IF M(F)=1 THEN 6$=B$+"1" ELSE 6$=B$+"0"

540 IF LB1(B$)=255 THEN CS=C$+LEFT$(B$.1):B$=flIGHT$ (Bt.254)

550 IF M(F)=1 THEN H=H+2"(3-K) I 560 K=K+1

570 IF K<=3 THEN 600 | 580 H$=H$+HEX$(H) ■ МО K>0:H=0 MOO NEXT F I 610 PRINT H$

620 RETURN I 630 REN (c)1995 Patrick GUEULLE

При помощи программы DEC416. ВАБ можно "грубо" расшифровать зти 416 бит. используя данные, предварительно сохраненные в файле с расширением .CAR. Ниже показан результат такой расшифровки. При внимательном рассмотрении можно заметить, что за время работы с картой, скорее всего, предпринималась попытка введения неверного секретного кода, и рабочая зона один раз уже стиралась (вероятно, для перезарядки).

Зона изготовителя: 19FF

0001100111111111

Зона владельца: OO0EOBOCO0FF

000000О00000111О000О1000000О1100000ОО0ОО11111111

Маска секретного кода: FFFF

Счетчик ошибок: 7FFC

0111111111111100

Предыдущий код введен с ошибкой

Защищенная зона: 0019

О0СО00О00ОО11О01

Рабочая зона:

CQ019372FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

1100000000000001100100110111001011111111111111111111111111111111111111111111111 1111111111111111111111111111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111

PREN = 1. RDEN = 1

Маска кода стирания: FFFFFFFF

Счетчик стирений: 7FFFFFFFFFFFFFFF

0111111111111111111111111111111111111111111111111111111111111111

Произведено стираний: 1. осталось: 63

Программа для карт T2G || Оглавление || Чтение GPM 896