Искусство вторжения - [4]

Шрифт
Интервал

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

При переводе программы в цифровую форму, которую компьютер может понять, эти «дорожные знаки» игнорируются — ни компьютеру. ни микропроцессору они совершенно не нужны.

Поэтому, когда программа восстанавливается из машинных кодов при помощи антиассемблера, в ней нет ни одного традиционного пояснения; продолжая метафору «дорожных знаков», такой восстановленный код можно сравнить с картой, на которой нет названий населенных пунктов и маркировки дорог.

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


ПЕРЕПИСЫВАНИЕ КОДА

Алекс с гордостью описывал усилия команды на этом этапе: « М ы были профессиональными программистами, и все сделали хорошо. Мы выяснили, как цифры кода программы превращаются в карты на табло игрального автомата, а затем написали небольшую добавку на языке С, которая делала то же самое», — говорил он.

«У нас был стимул для работы, и мы работали ночи напролет. Нам потребовалось около трех недель, чтобы досконально разобраться в том, как работает программа.

Для этого мы изучали текст, делали определенные предположения о его назначении, писали некоторые добавки к программе, помещали ее в R O M (компьютерный чип) и возвращали его в машину, а потом смотрели, что происходит. Например, мы написали специальную программу, которая располагала числа над изображением карт на экране. Так мы определили, каким образом программа оперирует с картами. Н а ш а работа ш л а по м е т о д у проб, ошибок, и постоянного анализа, достаточно быстро строки кода начали наполняться смыслом. Мы досконально разобрались в том, как числа в компьютерной программе превращаются в карты на экране.

Мы надеялись, что генератор случайных чисел будет устроен достаточно просто. Дело происходило в начале девяностых годов, и это было именно так. После небольшого анализа я понял, что мы имеем дело с генератором, который Дональд К н у т написал е щ е в 60-е годы. Авторы программы для игрового автомата не стали изобретать велосипед, а просто скопировали в свою программу имеющиеся разработки по методу Монте-Карло.

Мы точно установили, какой алгоритм использовали авторы программы в своем коде для случайной выборки карт; он назывался линейным регистром сдвига с обратной связью (linear feedback shift register) и это был очень хороший генератор случайных чисел (RNG)».

Очень скоро «взломщики» поняли, что в этом генераторе случайных чисел есть очень серьезная «прореха», которая существенно упрощает их задачу. Как объяснял Майк, «это был достаточно простой 32-битный RNG, поэтому взломать его не составляло особого труда, а с помощью нескольких хороших оптимизаций стало совсем просто».

Итак, выдаваемые генератором числа не были абсолютно произвольными. Но, по мнению Алекса, есть серьезная причина для этого:

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

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

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

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


Еще от автора Кевин Митник
Призрак в Сети. Мемуары величайшего хакера

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


Искусство обмана

Книга The Art of Deception – «Искусство обмана» – доказывает, насколько мы все уязвимы. В современном мире, где безопасность подчас выходит на первый план, на защиту компьютерных сетей и информации тратятся огромные деньги. Деньги тратятся на технологии безопасности. Эта книга объясняет, как просто бывает перехитрить всех защитников и обойти технологическую оборону, как работают социоинженеры и как отразить нападение с их стороны Кевин Митник и его соавтор, Бил Саймон рассказывают множество историй, которые раскрывают секреты социальной инженерии.


Стив Джобс. Уроки лидерства

Эта книга – редкая возможность увидеть Стива Джобса таким, каким его видели лишь его самые близкие сотрудники, и разгадать загадку этого легендарного человека. Это возможность понять и освоить оригинальный стиль лидерства Джобса, благодаря которому Apple стала одной из величайших компаний и смогла выпускать продукты, изменившие нашу жизнь. Автор книги, Джей Эллиот, бывший старший вице-президент компании Apple, долгое время работал бок о бок со Стивом Джобсом и сформулировал главные уроки «iЛидерства», которые помогут совершить прорыв компании любого размера и из любой отрасли.


iКона: Стив Джобс

Эта книга о самом поразительном человеке в современной истории бизнеса – Стиве Джобсе – великом предпринимателе эпохи высоких технологий, известном своим индивидуализмом, инакомыслием и бунтарским характером. Авторы подробно описали головокружительный взлет молодого человека, очень рано добившегося успеха, и последовавшее за этим стремительное падение, во время которого Стив был изгнан не только из Apple, но и из компьютерной индустрии вообще.Эта книга приобрела скандальную известность еще на этапе ее подготовки к печати.