Kniga-Online.club

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

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

На сайте издательства www.dmk.ru содержатся исходный текст программы LECT75.PAS, приведенный выше, и соответствующий исполняемый файл LECT75.EXE. Эта программа создает файл CARTE.CAR, содержащий данные, считанные с дорожки, — 240 бит.

Это 48 раз по 5 бит, то есть 40 полезных знаков, которые максимально может содержать дорожка ISO 2, и 40 бит нулей заполнения, избыток которых не важен.

Формат этого файла (.CAR) мы определили уже несколько лет назад для считывания чип-карт; текст в коде ASCII, состоящий исключительно из 1 и 0, разделенных пробелами. С учетом линейной структуры магнитных дорожек никакого разбиения ни на группы битов, ни на строки фиксированной длины предусмотрено не было. Преобразование двоичных данных в цифровые символы, а также другие интересные анализы будут доверены другим программам, написанным на GWBASIC. Программа предполагает, что адрес порта игровой приставки — 513 (в десятичной системе); это имеет место для всех действительно IBM PC-совместимых ПК.

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

В подобном случае необходимо вставить карту вторично. Если блокировка продолжается, воспользуйтесь другой картой, которая уже считывалась с первого раза. Чтобы непосредственно получить отображение содержимого дорожки в битовом виде, в оболочке из основной программы LECTISO2.BAS посредством строки 30 вызывается внешняя программа LECT75.EXE. При этом, конечно, необходимо, чтобы программа COMMAND.СОМ была доступна через путь поиска PATH, в котором должна быть соответствующая запись, либо просто скопирована в текущую директорию.

Обратите внимание, что все эти программы были написаны специально для работы в DOS. Рекомендуется воздержаться от их запуска через Windows (в окне DOS), поскольку это может замедлить их выполнение.

В некоторых случаях предпочтительно дезактивировать некоторые резидентные программы, например ЕММ 386. Пользователи PC, привыкшие работать в Windows (версия не имеет значения), должны закрыть эту операционную систему, прежде чем приступить к выполнению программ.

10 REM — LECTISO2.BAS —

20 KEY OFF: CLS: PRINT: PRINT: PRINT: PRINT

30 SHELL "LECT75.EXE"

40 OPEN "carte.car" FOR INPUT AS #1

50 DIM T(240)

60 FOR F=1 TO 240

70 INPUT#1,T(F)

80 NEXT F

90 J=1

100 IF T(J)<>1 THEN 160

110 IF T(J+1)<>1 THEN 160

120 IF T(J+2)<>0 THEN 160

130 IF T(J+3)<>1 THEN 160

140 IF T{J+4)<>0 THEN 160

150 K=J: GOTO 200

160 J=J+1: GOTO 100

200 C$=""

210 FOR F=0 TO 4

220 IF T(K+F) =0 THEN C$=C$+"0"

230 IF T(K+F) =1 THEN C$=C$+"1"

240 NEXT F

250 GOSUB 2000

260 K=K+5: IF K>235 THEN END

270 GOTO 200

2000 IF C$="11010* THEN PRINT "{start}"

2010 IF C$="10110" THEN PRINT "{sep}"

2020 IF CS="11111" THEN PRINT "{end}"

2030 IP C$="01011" THEN PRINT "{10}";

2040 IF C$="00111" THEN PRINT "{12}";

2050 IF C$="01110" THEN PRINT "{14)";

2060 IF C$="00001" THEN PRINT "0";

2070 IF C$="10000" THEN PRINT "1";

2080 IF C$="01000" THEN PRINT "2";

2090 IF C$="11001" THEN PRINT "3";

2100 IF C$="00100“ THEN PRINT "4";

2110 IF C$="10101" THEN PRINT "5";

2120 IF C$="01101" THEN PRINT "6";

2130 IF C$="11100" THEN PRINT "7";

2140 IF C$="00010" THEN PRINT "8";

2150 IF C$="10011" THEN PRINT "9";

2170 RETURN

3000 REM (c) 1996 Patrick GUEULLE

Программа LECTISО2.BAS — основная программа, которую вы будете использовать для считывания дорожки ISO 2 стандартных магнитных карт. Если LECT75.EXE присутствует в текущей директории (наряду с COMMAND.COM), то любое прохождение читаемой карты (в правильном направлении) должно привести к отображению 240 считанных бит и соответствующих цифровых данных.

Ниже показано, что это дает в конкретном случае с файлом TEST5.CAR, представленным на сайте www.dmk.ru. Так, файл TEST5.CAR, декодированный с помощью программы LECTISО2.BAS, будет иметь следующий вид:

Одновременно создается файл CARTE.CAR, который нетрудно переименовать в DOS (командой REN), если есть желание его сохранить. Ни один из тестов (на четность или LRC) не производится.

Такие проверки можно осуществить по запросу при необходимости (дальше будут представлены соответствующие программы). Однако при этом существует риск сбоя в считывании некоторых нестандартных карт.

При отображении данных, записанных на дорожке, используются не стандартные «кабалистические* знаки, представленные выше в виде пяти- и семибитного кода ANSI, а знаки в более наглядной форме:

• флажок начала: {start};

• разделитель полей: {sep};

• флажок конца: {end};

• специальные знаки: {10}, {12} и {14}.

Внимание: не путайте эти фигурные скобки с простыми!

Считывание дорожки ISO 1

Работать с дорожкой ISO 1 несколько сложнее, поскольку обычно она записана с плотностью 210 bpi и содержит семиразрядные коды алфавитно-цифровых символов.

Осуществить считывание позволяет программа LECT210.PAS, которая работает аналогично LECT75.PAS. Ее исполняемая версия (LECT210.EXE) может использоваться либо самостоятельно для создания файла CARTE.CAR на 630 бит, либо вызываться из другой программы в оболочке Basic.

Отметим, что 630 бит — это 90 раз по 7 бит, то есть они соответствуют 79 знакам, которые максимально может содержать дорожка ISO 1, плюс 77 нулей заполнения.

10 REM — LECTISO1.BAS —

20 KEY OFF: CLS: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT

30 SHELL "LECT210.EXE"

40 OPEN "carte.car" FOR INPUT AS #1

50 DIM T(630)

60 FOR F=1 TO 630

70 INPUT#1,T(F)

80 NEXT F

90 J=1

100 IF T(J)<>1 THEN 160

110 IF T(J+1)<>0 THEN 160

120 IF T(J+2)<>1 THEN 160

130 IF T(J*3)<>0 THEN 160

140 IF T(J+4)<>0 THEN 160

141 IF T(J+5)<>0 THEN 160

142 IF T(J+6)<>1 THEN 160

150 K=J: GOTO 200

160 J=J+1:GOTO 100

200 C$=""

210 FOR F=0 TO 6

220 IF T(K+F) =0 THEN C$=C$+"0"

230 IF T(K+F)=1 THEN C$»C$+"1"

240 NEXT F

250 GOSUB 2000

260 K=K+7: IF K>623 THEN END

270 GOTO 200

2000 IF C$="1010001" THEN PRINT "{start}"

2010 IF C$="0111110" THEN PRINT "{sep}"

2020 IF C$="1111100" THEN PRINT "{end}"

2030 IF C$="0000001" THEN PRINT " ";

2031 IF C$="1000000" THEN PRINT "{1H}";

2032 IF C$="0100000" THEN PRINT "{2H}";

2033 IF C$="1100001" THEN PRINT "{3H}";

2034 IF C$="0010000" THEN PRINT "{4H}";

2036 IF C$="0110001" THEN PRINT "{6H}";

2037 IF C$="1110000" THEN PRINT "{7H}";

2038 IF C$="0001000" THEN PRINT "{8H}";

2039 IF C$="1001001" THEN PRINT "{9H}";

2040 IF C$="0101001" THEN PRINT "{AH}";

2041 IF C$="1101000" THEN PRINT "{BH}";

2042 IF C$="0011001- THEN PRINT "{CH}";

2043 IF C$="1011000- THEN PRINT "{DH}";

2044 IF C$="0111000" THEN PRINT "{EH}";

2045 IF C$="1111001" THEN PRINT "{FH}";

2060 IF C$="0000100" THEN PRINT "0";

2070 IF C$="1000101" THEN PRINT "1";

2080 IF C$="0100101" THEN PRINT "2";

2090 IF C$="1100100" THEN PRINT "3";

2100 IF C$="0010101" THEN PRINT "4"

2110 IF C$="1010100" THEN PRINT "5"

2120 IF C$="0110100" THEN PRINT "6";

2130 IF C$="1110101" THEN PRINT "7"

2140 IF C$="0001101" THEN PRINT "8";

2150 IF C$="1001100" THEN PRINT "9";

2151 IF C$="0101100" THEN PRINT "{1AH}";

2152 IF C$*"1101101" THEN PRINT "{1BH}";

2153 IF C$="0011100" THEN PRINT "{1CH}";

2154 IF C$="1011101" THEN PRINT "{1DH}";

2155 IF C$="0111101" THEN PRINT "{1EH}";

2160 IF C$="1000011" THEN PRINT "A";

2161 IF C$="0100011" THEN PRINT "В";

2162 IF C$="1100010" THEN PRINT "C";

2163 IF C$="0010011" THEN PRINT "D";

2164 IF C$="1010010" THEN PRINT "E";

2165 IF C$="0110010" THEN PRINT "F";

2166 IF C$="1110011" THEN PRINT "G";

2167 IF C$="0001011" THEN PRINT "H";

2168 IF C$="1001010" THEN PRINT "I";

2169 IF C$="0101010" THEN PRINT "J";

2170 IF C$="1101011" THEN PRINT "K";

2171 IF C$="0011010" THEN PRINT "L";

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

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

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


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

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


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

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

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


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