Kniga-Online.club

Патрик Гёлль - Магнитные карты и ПК

Читать бесплатно Патрик Гёлль - Магнитные карты и ПК. Жанр: Радиотехника издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

Прежде чем приступить к изучению карты с использованием «магнитного разоблачителя», желательно провести простой анализ посредством специальной программы.

10 REM — PARITY.BAS—

20 KEY OFF: CLS

30 PRINT "имя файла, подлежащего проверке";

40 INPUT N$: IF N$ = "" THEN END

50 FOR F=1 TO LEN (N$)

60 IF MID$(N$,F,1) = "." THEN 90

70 NEXT F

80 N$=N$+".CAR"

90 OPEN N$ FOR INPUT AS #1

100 CLS: PRINT "идет контроль четности…": PRINT

110 DIM A(LOF(1))

120 M=0: WHILE NOT EOF(1)

130 INPUT#1,A(M): M=M+1: WEND

140 PRINT "0…0";

150 X=0

160 IF A(X) =1 THEN 180

170 X=X+1: GOTO 160

180 N=0: FOR F=X TO X+4

190 IF A(F) =1 THEN N=N+1: PRINT "1"; ELSE PRINT "0";

200 NEXT F: PRINT " ";

210 IF (N/2)-INT(N/2)=0 THEN 230

220 IF X>=M THEN 310 ELSE X=X+5: GOTO 180

230 IF N>0 THEN 290

240 FOR G=X TO M

250 IF A(G)>0 THEN 290

260 NEXT G

270 PRINT "0…0"

280 GOTO 310

290 PRINT: PRINT: PRINT: PRINT "четность 5-разрядного кода неправильная"

300 ВЕЕР: PRINT: PRINT: PRINT: GOTO 330

310 PRINT: PRINT: PRINT: PRINT "четность 5-разрядного кода правильная"

320 PRINT: PRINT: PRINT

330 PRINT"0…..0";

340 X=0

350 IF A(X)=1 THEN 370

360 X=X+1: GOTO 350

370 N=0: FOR F=X TO X+6

380 IF A(F) =1 THEN N=N+1: PRINT"!";ELSE PRINT "0";

390 NEXT F: PRINT " ";

400 IF (N/2)-INT(N/2)=0 THEN 420

410 IF X>=M THEN 500 ELSE X=X+7: GOTO 370

420 IF N>0 THEN 480

430 FOR G=X TO M

440 IF A(G) >0 THEN 480

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

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

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

Ниже представлен результат проверки файла TEST5.CAR (его можно найти на сайте www.dmk.ru) закодированного пятиразрядным кодом и не имеющего никаких ошибок четности. Следует обратить внимание, что нули запуска и заполнения представлены в сокращенной форме.

Теперь покажем результат той же самой проверки, на этот раз проведенной с файлом TEST7.CAR, закодированным семиразрядным кодом и также не имеющим никаких ошибок.

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

При возникновении настоятельной необходимости в проверке LRC можно обратиться к программе LRCMAG.BAS из главы 4. Эта программа предназначена для использования в ходе операций кодирования, но вполне годится и после считывания, за которым следует декодирование.

ПРОВЕРКА КОНТРОЛЬНОГО КЛЮЧА

Вот еще одна проверка, которую удобно проводить с файлом .CAR, но только после его декодирования. Речь идет не о серии битов, а о числе, состоящем из некоторого количества цифр помимо битов заполнения.

Например, в случае файла VISA.CAR необходимо произвести проверку только одной части информации, декодирование которой представлено в главе 2, где речь идет о содержимом дорожки ISO 2 банковской карточки. В данном случае это 16-значный номер карточки: 4970101234567890.

Программа LUHNCHK.BAS работает с числами, состоящими из любого количества цифр, как четного, так и нечетного.

10 REM — LUHNCHK.BAS —

20 KEY OFF: CLS

30 CLEAR: PRINT: PRINT "введите номер карты": INPUT N$

40 L=LEN(N$):DIM N(L)

50 FOR F=1 TO L

60 C$=MID$(N$,F,1): C=VAL(C$): N(F) = C

70 NEXT F

80 IF (L/2) — INT (L/2) = 0 THEN 170

90 T=0: FOR F=2 TO L — 1 STEP 2

100 C=2*N(F): IF C>=10 THEN C=C-9

110 T=T+C: NEXT F

120 FOR F=1 TO L STEP 2

130 T=T+N(F): NEXT F

140 IF T>=10 THEN T=T-10: GOTO 140

150 IF T=0 THEN PRINT "номер действителен": GOTO 30

160 PRINT "номер не действителен": GOTO 30

170 T=Q: FOR F=1 TO L-1 STEP 2

180 C=2*N(F): IF C>=10 THEN C=C-9

190 T=T+C: NEXT F

200 FOR F=2 TO L STEP 2

210 T=T+N(F): NEXT F

220 GOTO 140

230 REM (c)1996 Patrick GUEULLE

В данном случае ответ будет номер не действителен, потому что мы, естественно, использовали номер несуществующей кредитной карточки. С другой стороны, ничто не мешает произвести такую проверку с вашей банковской карточкой, номер которой должен быть действительным.

СРАВНЕНИЕ КАРТ

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

Это очень просто сделать путем архивирования файла .CAR — того, который послужил для кодирования карты (мы еще к этому вернемся), либо того, который был создан при «реперном» считывании.

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

10 REM — VERMAG.BAS —

20 KEY OFF: CLS

30 PRINT "имя файла, подлежащего проверке";

40 INPUT N$: IF N$ = "" THEN END

50 FOR F=1 TO LEN (N$)

60 IF MID$ (N$,F,1) = "." THEN 90

70 NEXT F

80 N$=N$+".CAR"

90 OPEN N$ FOR INPUT AS #1

100 PRINT: PRINT "имя эталонного файла";

110 INPUT N$: IF N$="" THEN END

120 FOR F=1 TO LEN(N$)

130 IF MID$ (N$,F,1)="." THEN 160

140 NEXT F

150 N$=N$+".CAR"

160 OPEN N$ FOR INPUT AS #2

170 CLS: PRINT "идет проверка…"

180 DIM A(LOF(1)): DIM B(LOF<2))

190 F=0: WHILE NOT EOF(1)

200 INPUT#1, A (F); F=F+1: WEND

210 M=F

220 F=0: WHILE NOT EOF(2)

230 INPUT#2,B(F): F=F+1: WEND

240 N=F

250 X=0

260 IF A(X) =1 THEN 280

270 X=X+1: GOTO 260

280 Y=0

290 IF В (Y) = 1 THEN 310

300 Y = Y+1: GOTO 290

310 CLS: PRINT "0…….0";: E=0

320 IF A(X) =B(Y) THEN PRINT "-"; ELSE PRINT "*";: E=1

330 IF X=M THEN 360 ELSE X=X+1

340 IF Y=N THEN 360 ELSE Y=Y+1

350 GOTO 320

360 PRINT" 0 0": PRINT: PRINT: PRINT "Файл"

370 IF E=0 THEN PRINT "соответствует!": PRINT: PRINT: END

380 PRINT "не соответствует!": PRINT: PRINT: BEEP: END

390 REM COPYRIGHT (c)1996 Patrick GUEULLE

Ниже представлен результат, полученный при сравнении явно различных файлов TEST5.CAR И TEST7.CAR.

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

4. Копирование, кодирование, стирание

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

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

Перейти на страницу:

Патрик Гёлль читать все книги автора по порядку

Патрик Гёлль - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Магнитные карты и ПК отзывы

Отзывы читателей о книге Магнитные карты и ПК, автор: Патрик Гёлль. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

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

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*