Читаем Как захватить Вселенную. Подчини мир своим интересам. Практическое руководство для вдохновленных суперзлодеев полностью

Радости компилирования высокоуровневых языков

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

Эта замена, случившаяся, скорее всего, из-за того, что я на микросекунду быстрее убрал палец с кнопки, и отличавшаяся всего на один пиксель, убила для меня полдня. Короче, компьютеры – это круто!

Поэтому программы и уязвимы перед злодейским планом, который вы провернете.

Низкоуровневые пакости для высокоуровневых языков

Уязвимость спрятана у всех на виду. Когда пишешь код на любом высокоуровневом языке, доверяешь компьютеру аккуратно преобразить написанное в двоичный код. Чтобы влезть в чей-то код, достаточно влезть в компилятор. Есть очевидный способ – плюс коварный, практически незаметный способ.

Давайте сначала рассмотрим очевидный.

Вот что происходит, когда вы компилируете приложение, написанное на высокоуровневом языке:



Допустим, вы проникли в компьютер жертвы через интернет и тайно изменили компилятор так, чтобы, компилируя с командой Print, он добавлял единицу к любому выведенному числу. И теперь, когда кто-нибудь использует компилятор, процесс выглядит вот так:



Внезапно, хоть кодировщики не наделали ошибок, все, что они создали с измененным компилятором, будет радостно извещать мир, что 10 + 20 = 31.

Приложения станут работать так, как не задумывалось, а бедные программисты-жертвы не смогут найти и исправить глюк «10 + 20 = 31» в своем коде, куда они посмотрят первым делом, поскольку изменения не там. Причина таится в исходном коде компилятора.

Конечно, они довольно быстро сообразят, что здесь что-то не то, ведь у их программ откровенная и заметная ошибка: каждое число больше на единицу. Но что, если действовать тоньше? Что, если вместо того, чтобы возиться с командой Print, сделать так: во всех ситуациях, когда компилятор обнаружит код с паролем, он проследит, чтобы заодно работал и пароль «райанкрутой». (Можно использовать свое имя, но скромно замечу, что мое на какое-то время собьет власти с вашего следа: мой вам подарок.)

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

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

Тут вы наверняка подумали: «Но ты же сказал, что компиляторы – такие же компьютерные программы, как и любые другие, а значит, любой может заглянуть в исходный код компилятора и найти мои изменения. Стоит им убрать ту часть, которая делает „райанкрутой“ паролем, и моему замыслу конец».

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

И значит, они сами скомпилированы.

И вот тут – самый коварный момент.


Шаг 1

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



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



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


Шаг 2

Перейти на страницу:

Все книги серии Удовольствие от науки

Отпускается без рецепта. Лекарства, без которых нам не жить
Отпускается без рецепта. Лекарства, без которых нам не жить

Эта книга о легендарных лекарствах, которые можно найти в каждой аптеке и в каждой домашней аптечке, лекарствах давних и новых, производимых в России. О 100-летии отечественной фармацевтики и ее создателях. Первый пенициллин был получен именно в нашей стране еще в 1942 году. У нас были произведены уникальные вакцины, некоторые из них спасли человечество. Нам есть чем гордиться и в настоящем. Во многих препаратах, выпускаемых зарубежными производителями, угадывается влияние самой большой в мире российской химической коллекции веществ, используемых для создания новых препаратов. Перед вами небольшое медицинское расследование, захватывающий рассказ о легендарных лекарствах, спасших и спасающих Россию, о лекарствах, без которых нам не жить!

Алёна Григорьевна Жукова , Елена Мекшун , Константин Анохин , Наталья Мушкатёрова , Полина Звездина

Альтернативная медицина / Медицина и здоровье / Дом и досуг

Похожие книги

1991. Хроника войны в Персидском заливе
1991. Хроника войны в Персидском заливе

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

Ричард С. Лаури

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / История / Прочая справочная литература / Военная документалистика / Прочая документальная литература
Зачем мы говорим. История речи от неандертальцев до искусственного интеллекта
Зачем мы говорим. История речи от неандертальцев до искусственного интеллекта

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

Тревор Кокс

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Исторические приключения
Экономика творчества в XXI веке. Как писателям, художникам, музыкантам и другим творцам зарабатывать на жизнь в век цифровых технологий
Экономика творчества в XXI веке. Как писателям, художникам, музыкантам и другим творцам зарабатывать на жизнь в век цифровых технологий

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

Уильям Дерезевиц

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература
Жизнь проста. Как бритва Оккама освободила науку и стала ключом к познанию тайн Вселенной
Жизнь проста. Как бритва Оккама освободила науку и стала ключом к познанию тайн Вселенной

Много веков назад принцип бритвы Оккама изменил наш взгляд на мир, показав, что простота является основополагающим принципом Вселенной. Ученый-биолог Джонджо Макфадден прослеживает историю научных открытий на протяжении нескольких столетий, от геоцентрического космоса до квантовой механики и ДНК. По мнению Макфаддена, жизнь могла появиться только благодаря максимальной простоте, и фундаментальный закон Вселенной есть не что иное, как космологическая форма естественного отбора, который всегда благоприятствует выживанию простейших элементов. Трактуя по-новому историю науки и происхождение Вселенной, эта книга в корне меняет наше представление о нас самих и об окружающем мире. «До Уильяма Оккама поиск ответов на вопросы, как правило, сопровождался появлением дополнительных сущностей. Уильям Оккам был первым, кто стал говорить о необходимости добираться до простых решений, отражающих суть проблемы. Благодаря ему этот принцип стал основополагающим в науке и отличительным признаком ее современности. Бритва Оккама повсюду. Она прокладывает путь, пробиваясь сквозь гущу искаженных представлений, догм, фанатизма, предрассудков, ложных убеждений, верований, которые везде и во все времена мешали науке двигаться вперед. Простота – это не что-то привнесенное в современную науку, это и есть современная наука, которая через научное познание открывает нам современный мир». (Джонджо Макфадден) В формате PDF A4 сохранён издательский дизайн.

Джонджо МакФадден

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Зарубежная образовательная литература / Образование и наука