Автор: ALS
Это был 1997 год. Я только что был уволен «по состоянию здоровья». «Состояние» состояло из семи ножевых ранений, которые в те годы можно было в легкую заиметь, даже просто выйдя в магазин за молоком. В итоге я сидел дома, в чужом городе и «доедал» последние деньги… И тут случилось событие, которое заставило меня забыть думать о печальном. Напрочь.
В какой-то момент объявился знакомый с моей бывшей работы и предложил помочь ему в делах. Оказалось, что сейчас он работает в автосервисе, занимается установкой сигнализаций и хочет подсадить клиентов на только что появившиеся комплекты с алгоритмом KeeLoq. Незадолго до того по городу прошла волна угонов, когда взламывались сигнализации предыдущих поколений и нужно было наглядно показать потенциальным клиентам достоинства новомодной и относительно дорогой системы.
Забегая вперед, скажу, что через несколько лет KeeLoq все же был взломан, но на момент своего появления он представлялся чуть ли не панацеей от всех бед автовладельцев.
В общем, знакомый предложил собрать «открывашку» (мы тогда еще не знали про такие слова, как «кодграббер»), которая бы в присутствии клиента могла бы подобрать (или перехватить) код системы, уже установленной на его машину, снять машину с охраны и таким образом убедить клиента в необходимости срочно менять систему на что-то другое, более дорогое, но и более защищенное. Не могу сказать, что я не понимал возможность двойного применения такой штуки, но, честно говоря, на тот момент мне было достаточно того, что мой знакомый был человеком семейным, а значит, как мне думалось, всякие приключения ему были не нужны. Да и нормально оплачиваемая работа – это то, что мне требовалось тогда просто позарез. В общем, мы обговорили мои возможности и потребности, сроки и сумму аванса и я засел за работу
На тот момент большое количество авто-сигнализаций были либо с фиксированным кодом, либо с динамическим, но без проверки уже пришедших посылок. Именно поэтому достаточно было записать кодовую посылку брелока из эфира, а потом просто воспроизвести ее. В случае с условно плавающим кодом было лишь ненамного тяжелее – надо было записать две посылки, а потом воспроизводить их, гоняя по кругу с небольшими паузами. На 3-4 круге все, как правило, получалось… Подбирать же код мне представлялось занятием бесперспективным, поэтому этот способ я отложил на будущее (точнее, вообще не сделал).
Не думаю, что эти мои откровения сейчас, спустя 20 лет, способны принести какой-то вред существующим системам, но если вдруг кто-то будет пытаться, учтите, что срок давности по моим тогдашним опытам уже давно истек. А вот по вашим (будущим) – нет.
На тот момент я достаточно хорошо знал ассемблер Z80, поэтому вопрос выбора не стоял – я начал проводить опыты на отечественном клоне, собранном на Т34. Сначала была написана программа в машинных кодах длиной байт в 30, которая по нажатию клавиши «s» (Старт) заполняла по кругу всю оперативную память данными, приходившими с магнитофонного входа. Какого-либо анализа этих данных не проводилось, они просто писались в сыром виде, заполняя всю оперативку в течение 2-3 секунд. Тут главное было вовремя нажать вторую кнопку (Стоп), чтобы на очередном круге не затереть уже записанную полезную информацию. Потом, по нажатию третьей кнопки (Play), запускался другой кусок кода и все данные в том самом виде, как они были записаны, просто излучались в эфир. В качестве приемника и передатчика я использовал комплект обычного авто-пейджера. Его частота лишь немного отличалась от общеупотребительной и достаточно легко перестраивалась на тот участок диапазона, где работали брелоки сигнализаций. Несмотря на всю «*****-палковость» метода, он работал. Не всегда, но процентов 40 тогдашних сигнализаций устоять перед ним не могли.
Проверяли вместе с моим знакомым и хозяином автосервиса. Они радовались, как дети – еще бы, они уже видели длинную очередь клиентов, жаждущих купить новую навороченную сигналку. А я, как заправский хакер, хмуро жал три кнопки на клаве (запись-стоп-воспр) и делал вид, что все происходящее – тоска зеленая.
Практически сразу встал вопрос – как избавиться от загрузки программы с магнитофона, ведь это ж совсем не по-пацански пользовать в таких делах бытовой компьютер с «Вегой» наперевес. И тут на сцену выходит второй девайс, имевший в те годы не меньшую популярность – АОН, собранный на том же самом Z80. Я уже не помню его модель, их были десятки, всех этих «Русей», «Теллуров» и прочих. Собирались они по разным схемам, но почти все идеально подходили под наши задачи: ранее составленную программу можно было прошить в ПЗУ, упаковать плату в «маленькую черную коробочку», сделать батарейное питание и получить в итоге небольшое устройство, сразу же по включению готовое к работе. Также в АОН-ах использовалась статическая память, которая при небольшой переделке штатной схемы питания была способна хранить записанные данные достаточно длительное время. Правда, на практике эта функция использовалась редко, поскольку, даже если покупатели и возвращались, по второму разу показывать «взлом» их систем (со старым кодом) было уже не нужно. Более существенные переделки коснулись самой памяти и управлявшего ею дешифратора: ПЗУ и ОЗУ на плате поменялись местами, для хранения программы была применена 573РФ2, а в качестве ОЗУ я поставил фирменную японскую M5M51008P. К ее старшему адресу был подключен тумблер, таким образом вся оперативная память была разделена на два банка по 64 Кб, которые с лихвой перекрывали все первоначальные задачи. В результате, по ходу работы можно было вручную коммутировать эти два банка, имея в памяти либо два разных кода от разных систем, либо пару следующих друг за другом – для систем с динамическим кодом.
Программатор для РФ2 я собирал сам, его схема, если не ошибаюсь, была опубликована в одном из выпусков ZX-Ревю. Но как только я начал работать с этим программатором, начались неприятности. Сначала я спалил свой компьютер, перепутав питание и +24 В, нужные для прошивки РФ2. Чинить было некогда, да и Спектрумы в то время уже выходили из обращения, цены на них были невысокие, поэтому купил другой, самодельный Ленинград-2. РФ2 поменял на буржуйскую с напряжением программирования 12 В… и снова спалил только что купленный компьютер.
Делать нечего, я купил третий Спектрум, а с двух «жертвенных» по мере необходимости выпаивал всякую мелочевку, нисколько не заботясь о сохранности дорожек и даже не думая о том, что когда-то я буду кусать локти, разглядывая эти два трупика и понимая, что я, лошара, уже не смогу их восстановить. Это все, что осталось от них на сегодняшний день:
Они пережили со мной не один переезд, потом пролежали на балконе 10 лет, потом были вынесены в гараж, а когда в один прекрасный день гараж был вскрыт и оттуда повытаскивали более-менее ценные вещи, а остальное просто раскидали. Я вытащил эти две платы из общей кучи и вернул их обратно на балкон. Где они и долежали до сегодняшнего дня.
Третий компьютер был заводским, я семь раз перепроверил подключение всех внешних девайсов и именно поэтому с ним ничего не случилось. Правда, он лишился своего корпуса во время одного из переездов, когда шла борьба за каждый грамм веса моих пожитков. Сам программатор, я уверен, тоже где-то лежит, но быстрым поиском я сейчас его найти не смог. Этот джентльменский набор юного хакера вы видите на титульная картинке этой статьи.
Я немного переписал программу под новый объем доступной памяти, добавил светодиодную индикацию, прошил ПЗУ и получил именно то, что требовалось: относительно небольшой девайс с мгновенной готовностью к работе.
Следующая картинка - ретроспективная, поскольку вести ворклоги в те времена еще не вошло в моду, а сама «открывашка» осталась у моего знакомого. Да и, сами понимаете, в те годы с цифровыми фотоаппаратами на руках у населения было не очень, а снимать все на обычный фотик и отдавать пленку в проявку я не догадался. Да и палевно как-то... Поэтому могу показать только то, из чего можно было бы это сделать:
Слева – чудовище с индикацией на VFD-дисплее, безумной схемой спикерфона и явно колхозным монтажом, справа – его коллега со светодиодной матрицей, без свистоперделок, зато гораздо более опрятный.
Спустя какое-то время мой знакомый пожаловался, что девайс достаточно быстро съедает батарейки. Тогда я сделал аппаратный моддинг устройства: сначала понизил тактовую до 1 MHz и откорректировал программу под новую частоту, потом поменял процессор на отечественный 1582ВМ2, а потом поступил совсем радикально - заменил батарейки на аккумуляторы.
Это, пожалуй, и конец истории. Добавлю, что если абстрагироваться от не совсем обычного применения этой штуки, то для меня это была отличная проверка знаний и умений. И еще неплохая возможность заработать, которая, в конечном итоге, позволила мне «превозмочь» печальные последствия походов за молоком
Сообщение форума