Инженер-самоучка, разорявший казино своими изобретениями

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

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

Его звали Вадим. Ему было сорок три года, и у него не было высшего образования. Всю жизнь он работал то наладчиком станков на заводе, то техником по ремонту торговых автоматов, то сборщиком электронных сигарет в подвальном цехе. В промежутках между сменами он читал всё подряд: старые учебники по физике из районной библиотеки, советские журналы «Юный техник», потрёпанные переводы книг по теории вероятностей и электронике. У него был острый, почти болезненный интерес к тому, как устроены вещи. Не почему они работают — это знают все инженеры, — а почему они ломаются и где в них заложена человеческая ошибка.

Впервые он попал в игровой зал случайно. Это было маленькое заведение на окраине областного центра, бывшее помещение продуктового магазина, переделанное под «слот-клуб». Вадима привёл туда бывший коллега, сказав, что после смены надо «расслабиться». Вадим не пил, не курил, и коллега подумал, что хотя бы на автомате он отвлечётся.

Он не отвлёкся.

Он сел перед первым попавшимся аппаратом, старым пятибарабанным «Фруктовым коктейлем», и не стал нажимать кнопку. Вместо этого он наклонился к стеклу, прищурился и начал разглядывать, как мигают лампочки на задней панели. Коллега посмеялся и ушёл к рулетке. Вадим остался. Через час он уже знал примерную частоту смены алгоритма подсветки, а через два — понял, что яркость дисплея у этого конкретного аппарата слегка просаживается в моменты, когда электронный блок пересчитывает результаты после обналичивания. Это было мелочью, даже не багом. Но для него это была зацепка.

С тех пор началась его вторая жизнь. Ночная.

Работа на заводе заканчивалась в шесть вечера, и он шёл не домой, а в разные игровые клубы — по очереди, чтобы не примелькаться. Он никогда не проигрывал крупно: не потому что боялся, а потому что не понимал азарта. Его интересовала механика. Он садился к аппаратам, которые называли «однорукими бандитами», и просто смотрел. Смотрел, как реагирует валидатор купюр на разные скорости подачи денег. Смотрел, как меняется звук вращения барабанов в зависимости от температуры в зале. Смотрел, как персонал выключает и включает аппараты при смене смены.

Ему понадобилось почти два года, чтобы сделать первый шаг.

Всё началось с телефонного звонка.

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

Вадим не шарил. Точнее, никто не знал, что он шарил. Он держал своё увлечение в тайне. Но в этот раз он согласился приехать.

Аппарат оказался новой моделью, купленной клубом с рук, с нелицензионной прошивкой, поставленной каким-то умельцем из соседнего региона. Вадим вскрыл корпус, подключил свой старый ноутбук через кустарный переходник USB-to-COM и начал смотреть, как машина общается с периферией. Через сорок минут он обнаружил, что датчик выпадения монет не был откалиброван. Это означало, что машина иногда «считала» выплату, но физически не выдавала её, а потом, после перезагрузки, могла задвоить сумму в пользу игрока. Мелочь, но из таких мелочей складывается система.

Он не стал чинить её. Вместо этого он записал все параметры наладки в блокнот и вежливо сказал администратору, что проблема сложнее, чем кажется, и ему нужно время.

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

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

Он изготовил дома имитатор купюры: тонкий картон, покрытый слоем лака, с нанесёнными магнитными полосами, имитирующими защитные линии пятитысячной банкноты. Через серию проб и ошибок он добился того, что его «фантик» проходил валидатор в двух случаях из трёх. Это уже было что-то. Но он не понёс его в казино.

Вместо этого он начал искать более системный подход.

Его прорывом стало открытие, связанное с генератором случайных чисел. В слот-машинах старого образца, а также в некоторых новых моделях с устаревшей прошивкой, генератор работал на основе термодатчика или таймера с плавающей частотой. Вадим выяснил, что если перед запуском вращения нажать кнопку несколько раз с определённым интервалом — строго выверенным, в миллисекундах, — то генератор сбивается и начинает выдавать одну и ту же последовательность. Он назвал это «ритмическим резонансом». На самом деле это была простая ошибка кода, не учтённая разработчиками: при быстрых нажатиях счётчик прерываний переполнялся, и начальное зерно генератора обнулялось.

Это означало, что он мог знать, что выпадет на следующем вращении.

Он проверил это дома на старом аппарате, купленном за бесценок, и на тридцать седьмом тестовом запуске получил идеально повторяющуюся серию. Потом ещё раз. И ещё. Это работало.

Он знал, что казино защищены. Но он также знал, что мелкие клубы на окраинах, где аппараты стоят годами без обновления прошивок, никто не проверяет. Там администраторы не знают, что такое «сид генератора», а охранники смотрят не на руки игрока, а на экран телефона. Он разработал стратегию: не жадничать, не выигрывать много, не приходить в одно заведение чаще одного раза в месяц, и всегда выглядеть как скучающий мужик с завода, который зашёл убить время.

Первые два месяца всё шло тихо.

Он начал с маленького клуба у автовокзала. Сел к аппарату, который уже протестировал неделей раньше, дождался вечерней смены, когда в зале шумно, и начал. Три ритмичных нажатия, пауза, ещё два, длинное нажатие. Барабаны закрутились. Он смотрел на экран и уже знал, что выпадет три семёрки. Они и выпали. Небольшой выигрыш, около четырёх тысяч. Он забрал билет, обналичил его у стойки, извинившись за удачу, и ушёл.

Через неделю другой клуб. Другой аппарат. Другой город — за сто двадцать километров, на электричке. Снова серия, снова выигрыш, снова умеренная сумма. Он не афишировал, не снимал на камеру, не оставлял следов. Деньги он тратил только на оборудование: покупал старые платы, заказывал из-за границы редкие микросхемы, собирал собственный анализатор сигналов.

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

Он придумал устройство, которое назвал «Глушилкой Шума». Это была маленькая плата, спрятанная в корпусе зажигалки. Она генерировала электромагнитный импульс на частоте, совпадающей с частотой работы считывателя магнитных карт. Когда она включалась, любая попытка персонала проверить баланс или историю операций на его аппарате давала сбой. Он использовал её редко, только в моменты, когда нужно было скрыть аномально длинную серию игры.

К концу первого года его накопления достигли суммы, которую он даже боялся произносить вслух.

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

Но он понимал, что его фокус с резонансом рано или поздно заметят.

Первым заметил его не охранник в каком-нибудь задрипанном клубе, а бывший инженер из треста «Казино-Сервис», мужчина лет шестидесяти, по имени Леонид Маркович. Он работал консультантом по безопасности в сети игорных залов «Золотая Миля» и однажды вечером сидел в зале, просматривая логи выигрышей за неделю. Его внимание привлекла одна деталь: на аппарате №14 в городе N в течение сорока минут восемь раз подряд выпадали комбинации, которые, по статистике, должны выпадать не чаще одного раза в четыре тысячи вращений. При этом сам аппарат не был взломан физически, не было следов вскрытия, и пломбы не тронуты.

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

— Это не фарт, — сказал он в трубку. — Это математика.

Началась незримая охота.

Вадим узнал о том, что его ищут, случайно. В одном из клубов его встретил знакомый техник и, отведя в сторону, сказал:

— Тут по сеткам циркулирует бумага, мол, ищут мужика, который разоряет автоматы сериями. Портрет общий, но маршруты его совпадают с твоими. Учти.

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

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

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

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

И тут его настигло непредвиденное.

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

Он успел сесть в ночной автобус, идущий в другой город. Дома не появлялся. У него был запасной съёмный угол в промзоне, где он хранил фургон и оборудование. Он позвонил на завод и сказал, что заболел. Сказал, что уезжает в деревню к матери. Никто не удивился — он и раньше пропадал. Он знал, что через день-два его начнут искать всерьёз: не полиция, а служба безопасности казино, а это страшнее, потому что у них нет процессуальных ограничений.

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

А потом он сделал то, что не делал никогда. Он позвонил Леониду Марковичу.

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

— Слушаю, — раздался сухой голос.

— Это тот, кого вы ищете по восьми аппаратам в трёх городах, — сказал Вадим. — Я не торгуюсь и не сдаюсь. Просто хочу, чтобы вы знали: я не мошенник. Я никого не обманывал. Ваши машины обманывают людей, а я лишь показал, что в них есть дыры.

Наступила долгая пауза.

— Вы понимаете, что я обязан сообщить о вашем звонке, — сказал Леонид Маркович.

— Понимаю. Но вы не сообщите.

— Почему же?

— Потому что вам самому интересно, как я это делаю. Вы старый инженер. Вы не можете не хотеть знать.

Снова пауза. Потом Леонид Маркович усмехнулся.

— Вы играете не в ту игру, молодой человек. Я не ведусь на лесть. Но у меня есть к вам встречное предложение. Напишите подробное описание всех найденных вами уязвимостей. По каждой модели. С техническими данными. Без утайки. Если это будет достоверно и полезно, я передам руководству, что вы готовы сотрудничать как консультант. Возможно, вас не будут преследовать.

Вадим молчал. Его пальцы побелели, сжимая телефон.

— А если я откажусь?

— Тогда вы труп. Рано или поздно. Вы же знаете, как это бывает.

Разговор оборвался.

Вадим просидел в фургоне до утра. Потом включил ноутбук и начал писать. Он писал двенадцать часов подряд, останавливаясь только чтобы сходить в туалет и выпить воды. Он описывал всё: резонансные последовательности, калибровку датчиков наклона, уязвимости валидаторов, «Глушилку Шума», «Крота», прошивки устаревших моделей, ошибки переполнения счётчиков прерываний, способы определения частот генераторов. Получился документ объёмом в сто сорок страниц.

Он отправил его не на тот адрес, который дал Леонид Маркович. А на адрес главного офиса сети, с пометкой «Для службы технической безопасности. Лично». Он не стал звонить. Не стал торговаться. Он просто оставил след.

Через неделю Вадим исчез.

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

Прошло несколько лет.

В одном из приморских городов, в здании старого пансионата, переделанного под гостиницу, работает мастер по ремонту бытовой техники. Ему около пятидесяти, у него седые виски и спокойные руки. Он чинит холодильники, стиральные машины, кофемашины, иногда — старые радиолы, которые приносят пенсионеры. Работает быстро, молча, дёшево. Никогда не играет в карты, не покупает лотерейных билетов, не смотрит по телевизору игровые шоу. Говорят, что однажды в его мастерскую забрёл молодой парень, который хотел починить игровую приставку, и услышал от мастера странную фразу:

— Не связывайся с машинами, которые решают за тебя. Ты всё равно проиграешь. Рано или поздно.

Парень не понял. Пожал плечами и ушёл.

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

Где-то далеко, в кабинете службы безопасности сети «Золотая Миля», на стене всё ещё висит распечатка с камеры наблюдения: человек в серой куртке, склонившийся над игровым автоматом. Подпись внизу сделана от руки, простым карандашом:

«Инженер. Не вскрывал. Не взламывал. Просто думал иначе. Разорял казино не жадностью, а знанием».

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

Комментарии: 0