Очень скоро «взломщики» поняли, что в этом генераторе случайных чисел есть очень серьезная «прореха», которая существенно упрощает их задачу. Как объяснял Майк, «это был достаточно простой 32-битный RNG, поэтому взломать его не составляло особого труда, а с помощью нескольких хороших оптимизаций стало совсем просто».
Итак, выдаваемые генератором числа не были абсолютно произвольными. Но, по мнению Алекса, есть серьезная причина для этого:
«Если они абсолютно произвольны, то не могут создавать неравные условия. Они не знают о том, что такое неравные условия. Некоторые автоматы выдают один за другим два последовательных королевских флэша (очень редкую комбинацию карт в покере — прим. переводчика). Такого не должно быть никогда. Поэтому дизайнеры хотят быть уверены, что у них правильная статистика, иначе им кажется, что они теряют контроль над игрой.
Одна вещь, которую дизайнеры не понимали, когда создавали свой автомат, заключается в том, что им и не нужен настоящий генератор случайных чисел. В любом покерном розыгрыше участвуют десять карт: пять сдаются сначала и еще пять для замены каждой из пяти по желанию игрока, В автомате эти десять карт выбирались, как десять последовательных случайных чисел в RNG».
Итак, Алекс и его партнеры поняли, что программа в том автомате, который они изучали, недостаточно продумана. Из-за наличия ошибок стало ясно, что они могут написать несложный, но элегантный алгоритм, который поможет им победить машину.
Идея, по мнению Алекса, заключалась в том, чтобы начать игру, увидеть, какой набор карт выбросил автомат, и ввести эти сведения в свой компьютер. Затем с помощью разработанного алгоритма вычислить положение, в котором находится генератор случайных чисел, и определить, сколько ему еще номеров осталось до того, как будет выброшена комбинация, соответствующая королевскому флэшу.
«Итак, мы работали на нашей тестовой машине и пробовали нашу маленькую программу, которая точно предсказывала нам следующие последовательности карт. Возбуждение нарастало».
Алекс приписывает это возбуждение «осознанию того, что вы умнее кого-то и можете переиграть его. А в нашем случае еще и заработать немного денег».
Они отправились в магазин, отыскали там наручные часы Casio с возможностью отсчета десятых долей секунды и приобрели сразу три штуки для всех троих, кто собирался быть в казино: Ларри должен быть оставаться у компьютера.
Они были готовы начать проверку своего метода. Один из команды должен был начать игру и фиксировать набор карт, которые ему выбрасывал автомат — масть и старшинство каждой из пяти карт. Ларри вводил бы эти данные в их собственный компьютер; хотя их машина и не принадлежала к известным брэндам, это был очень приличный компьютер для их целей, поскольку его процессор был во много раз быстрее тех, что использовались в японских игральных автоматах. Всего за несколько мгновений он вычислял точный момент времени, который должен быть установлен в один из секундомеров Casio.
Когда отсчет времени заканчивался, человек у игрового автомата должен был нажать кнопку «Игра». Это должно было произойти предельно четко, в течение доли секунды. Но это не было слишком сложной проблемой, как объяснил Алекс.
«Двое из н а с какое-то время занимались музыкой. Е с л и вы музыкант и у вас хорошее чувство ритма,то вы можете нажать кнопку в нужный момент в пределах десяти миллисекунд».
Если бы все сработало так, как предполагалось, то машина должна была выбросить игроку набор из пяти последовательных карт одной масти — королевский флэш.
Наши экспериментаторы попробовали этот трюк на своем автомате и практиковались до тех пор, пока каждый из них не научился добиваться выпадения королевского флэша практически с каждой попытки.
Несколько месяцев они, по словам Марка, «занимались восстановлением программы автомата, определяли, каким образом случайные числа превращаются в карты на экране автомата, установили точно, как и когда выбрасывает числа RNG, изучили все особенности автомата и создали программу, учитывающую все эти особенности, чтобы в любой момент времени знать состояние RNG на часы и даже дни вперед».
Они победили автомат и сделали его своим рабом. Они бросили настоящий хакерский вызов и выиграли. Это знание могло сделать их богатыми.
Как прекрасно было мечтать об этом. Удастся ли им реализовать свои мечты в дебрях казино?
НАЗАД В КАЗИНО — ВРЕМЯ ИГРАТЬ
Одно дело совершать любые махинации на автомате, стоящем в безопасном месте. Пробовать их в центре переполненного казино и красть у него деньги — это совсем другая история. Для этого нужны стальные нервы.
Их девушки считали все происходящее забавой. Ребята советовали им надеть обтягивающие шорты и вести себя повеселее — играть, шуметь, кривляться, заказывать выпивку — надеясь, что служба наблюдения казино, следящая за всем происходящим через камеры наблюдения, будет отвлечена веселыми лицами и ужимками. «Поэтому мы поощряли такой стиль поведения, как только могли», — вспоминал Алекс.