Как читают телефонные карты, или научись цеплять к своему компу девайсы

Спецвыпуск Xakep, номер #011, стр. 011-088-4

procedure pause;

VAR p:word;

begin

for p:=1 to 1000 do;

end;

И наконец - то, к чему мы так долго стремились. Когда будешь читать, тоже посматривай в стандарт и на диаграммы. Потому что мы, начитавшись стандартов, в этой процедуре крутим Клок с Ресетом так, чтобы сбросить карту. А сбросить надо ее для того, чтобы прочитать всю инфу с начала, а не с середины.

Сброс счетчика адреса карты в 0:

procedure card_reset;

begin

c_reset;

c_clk;

pause;

s_reset;

pause;

s_clk;

pause;

c_clk;

pause;

c_reset;

cntr:=0;

end;

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

Чтение следующего бита памяти карты:

function next_bit:byte;

begin

pause;

s_clk;

pause;

c_clk;

pause;

next_bit:=io;

inc(cntr); {Увеличить счетчик на 1}

end;

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

Содержимое памяти карты

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

Вот что выдала программа, когда подключили карту.

--------- Memory dump ---------

232 48 207 16 5 8 60 138

{0 0 0 1 3} 255 104 4

----------- End dump ----------

Как посчитать число кредитов

Пять байт в скобках кодируют количество кредитов на карте.

Надо посчитать по формуле: a0*8^0+a1*8^1+a2*8^2+a3*8^3+a4*8^4

Где: a0 - число единичных бит в самом правом из пяти байт, отведенных под хранение числа единиц, а a4 - число единичных бит в самом левом из пяти этих же байт. Остальные биты между ними читаются справа налево.

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

Значит, так:

Нулевой байт (N=0) у нас тройка 3=0000 0011, единичек здесь две (a0=2).

Первый байт (N=1) у нас единица 1=0000 001, единичек две (a1=1).

Остальные байты (N=2, N=3, N=4) нулевые, т.е. единичек всюду ноль (a2=a3=a4=0).

Ну а теперь подставляем в формулу:

a0+a1*8+a2*64+a3*512+a4*4096 = 2+1*8+0*64+0*512+0*4096=2+8=10 кредов.

Как ломают карты

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

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

Назад на стр. 011-088-3  Содержание  Вперед на стр. 011-088-5

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001