Современный мир плотно оцифровался, и взаимодействие с ПО вошло в нашу повседневность. Сложно представить, насколько легкомысленно к изображению кода на экране в кино подходили всего 10-15 лет назад. Вместо реальных работающих алгоритмов на мониторе стильного хакера нередко показывали какую-то чушь. Иногда это было осознанной шуткой со стороны создателей фильма или их консультантов-айтишников.
Впрочем, даже в дремучие с этой точки зрения времена кинопроизводства 2000-х и 2010-х находились режиссеры, которые заботились об аутентичности и функциональной адекватности строчек кода, которые мелькали на экране порой всего на долю секунды. Такие фильмы снискали заслуженное уважение настоящих IT-специалистов.
В этой статье мы рассмотрим все три типа кода, который появляется в фильмах: бессмысленный, странный и адекватный рабочий.
История изучения вопроса
Впервые внимание широкой общественности к коду на киноэкранах привлек программист Джон Грэм-Камминг (в настоящее время, с 2020 года, он работает техническим директором CloudFlare).
В 2014 году он смотрел боевик с Мэттом Деймоном «Элизиум — рай не на Земле» и обратил внимание на одну сцену, в которой перезагружалось ПО космической станции. Грэму-Каммингу промелькнувшие на несколько секунд строчки показались очень знакомыми, и он решил поискать, откуда создатели фильма их взяли. Ответ нашелся быстро: код целиком скопировали из руководства Intel для программистов, которое Грэм-Камминг (начавший программировать в 13 лет) читал давным-давно.
Эта история (а также то, как пост о ней завирусился в Twitter) вдохновила специалиста на то, чтобы повнимательней приглядеться и к остальным примерам якобы настоящего кода, который показывают в кино.
Занимательный факт про Джона Грэма-Камминга — он был тем самым человеком, который в 2009-м году создал петицию и заставил британское правительство официально извиниться за преследование отца ИИ и вообще современных компьютеров Алана Тьюринга, приведшее к его самоубийству в возрасте 41 года. 24 декабря 2013 года королева Великобритании Елизавета II помиловала Тьюринга посмертно.
Грэм-Камминг завел блог на Tumblr, набравший за три дня 11 тысяч подписчиков, и получил огромное количество писем, предлагавших разобрать код из того или иного кино. По его словам, этот процесс достаточно прост: специалисту достаточно просто взглянуть на код, чтобы сразу как минимум определить, полный ли бред перед ним — или что-то, что может действительно быть рабочим. Во втором случае Грэм-Камминг продолжал свои изыскания.
В большинстве случаев, по словам специалиста, если код оказывался рабочим, ему удавалось найти его на первой странице Google, и он целиком соответствовал тому, что показывали в кино. Так как в фильмах код на экране используется нередко в весьма пафосных ситуациях, выглядит это довольно смешно: в «Терминаторе», например, при виде «из глаз» андроида T-800 мы можем увидеть безвредный ассемблерный код для Apple-II.
А в одном из эпизодов обновленного «Доктора Кто» главный герой очень сосредоточенно изучает… браузерный код, отсылающий к картинке в «Википедии». Наверное, специалистам по боевым искусствам так же весело смотреть популярные боевики.
Грэм-Камминг говорит, что это удивительно: на код, который нередко имеет ключевое значение для сюжета фильма, создатели часто вообще не обращают внимание и даже не заботятся о правдоподобии, хотя можно было бы потратить на полчаса дольше и найти работающий и свободно распространяемый код на каком-нибудь GitHub.
Справедливости ради, всегда были и примеры обратного. Например, в «Парке Юрского периода» (1993), несмотря на общую фантастичность сюжета с воскрешением динозавров, герои работали на реальных ОС в реальных компьютерных программах того времени. Но это — капля в море, по сравнению с общим океаном бреда того, как код на экране показывают в кино и сериалах. Ситуация ощутимо наладилась в 2010-х, после задавшего новую планку изобразительной достоверности фильма Дэвида Финчера «Социальная сеть», но это не означает, что ленивые режиссеры и художники-постановщики перевелись на свете.
Сейчас Грэм-Камминг продолжает разбирать код в кино уже в формате видеоблога на новом сайте Behind The Screens. А мы решили провести собственное небольшое исследование, наделали скриншотов из самых разных фильмов и сериалов и спросили IT-специалистов DDoS-Guard, что они думают по поводу увиденного.
Странный код
(реальный код, но не соответствующий тому, что якобы происходит на экране)
Начнем с классики, известного ценителям фильма «Antitrust» (2001):
Что именно мы видим на экране, не поясняется. Однако герои фильма, программист и его супервайзер, реагируют так, будто этот код — что-то потрясающее и изумительное, то, что они «смогут использовать» (видимо для великих дел).
Единственный «профессиональный» комментарий, который отпускает программист — this compression is awesome.
Мнение эксперта DDoS-Guard:
Вероятнее всего, в верхнем куске кода происходит чтение строки откуда-то до символа перевода строки или до символа перевода каретки (обычно они идут подряд в винде и обозначают конец строки). Далее код под пальцем максимально нерационально пытается проверить, написано ли в начале строки слово «GET», и в этом случае пытается какой-то переменной (под пальцем не видно) поставить значение true. Вероятнее всего, они пытались прочитать слово GET в начале строки, но чет написали код настолько великолепный, что убить его автора мало... Судя по всему, пытались сделать проверку того, какой HTTP метод вызывается — GET или HEAD, но сделали это ужасно.
Не совсем понятно, что делает в этой конкретной сцене сериала «Код на миллиард долларов» (2021) персонаж. По сюжету он разрабатывает в 1993 году революционный 3D-софт Terravision, который обрабатывает данные со спутников и помогает построить объемную картинку планеты.
Мнение эксперта DDoS-Guard:
Да это же кейлоггер! Код читается не очень, но прямо с высокой очень вероятностью он пишет на C++ кейлоггер (ПО, которое незаметно собирает данные о нажатых на клавиатуре клавишах). То есть код корректный, но что он делает в этой конкретной сцене, непонятно. Видимо, персонаж его допишет и пойдет творить свои злые делишки :)
Бессмысленный код
(либо вообще не код, либо что-то явно неадекватное)
Цикада 3301: Квест для хакера (2021)
По сюжету предполагается, что главный герой взламывает криптокошелек недруга (который в это время занят любовными делами), подбирая пароль с помощью алгоритма, и выводит крипту вовне.
Мнение эксперта DDoS-Guard:
В начале сцены больше похоже на попытку занести какие-то данные из одного файла в другой. Потом появляется меню некой консольной утилиты и список директорий, где, вероятно, может хранится что-то интересное вроде конфигов или подобного. Запустили какую-то тулзу, скорее всего, для брута. Дальше какой-то абстрактный код, больше похож на геттеры какие-то, никакой тяжёлой логикой не обладающие. В целом как будто случайный набор команд на Perl, и то с ошибками. Быть может, здесь хотели показать, как выглядит внутрянка какого-то BTC или подобного кошелька, но оно выглядит не так, к сожалению. Похоже на использование elpscrk, программы, которая не подбирает и применяет, а из своего хранилища выдает максимально совпадающий пароль, исходя из вводных.
Так, по мнению авторов фильма «Девушка, которая застряла в паутине» (2018), выглядит процесс утечки данных для системного инженера ФБР, который за ним наблюдает, не в силах что-либо сделать.
Мнение эксперта DDoS-Guard:
Красивая картинка для фильма :) Ничего там интересного не происходит, кроме открытого на фоне ютубчика. По центру под полосой загрузки, скорее всего по гайду с того же ютуба, открыт какой то 16-ричный редактор.
Так, по мнению авторов фильма «Обратный отсчет» (2019), выглядят внутренности приложения на 60 гигабайт (!), которое предсказывает людям дату их смерти и начинает обратный отсчет.
Мнение эксперта DDoS-Guard:
Снова похоже на красивую картинку для фильма, так как текст вообще не несет какой-либо смысловой нагрузки. Зато есть фраза на латыни! Ее перевод: это проклятие найдет тебя, будет преследовать и угнетать тебя, пока ты не будешь полностью уничтожен. Вот такой вот суровый «код».
Сцена из фантастического сериала «Разрабы» (2020). По сюжету, так выглядит код на экране в сверхсекретном отделе. Увидев его, главный герой, специалист по ИИ, впадает в такой шок, что его начинает буквально (не метафорически) тошнить.
Мнение эксперта DDoS-Guard:
Это код на питоне. Так как я не люблю питон — я тоже впал в шок, но без тошноты. Там есть пара явных ошибок, но код читается с трудом. Похоже на дебаггер исполняемых файлов. Может ГГ не понравились эти ошибки, или стиль кода, как выстроен алгоритм. В правом верхнем углу и правда какая то ересь на эзотерическом языке, похожем на Brainfuck. Может у ГГ просто фобия на него?
Адекватный рабочий код
(код, который действительно работает и находится в сцене на своем месте)
«Who Am I: No System Is Safe» (2014)
Главный герой взламывает центральный сервер университета, чтобы добыть билеты с вопросами для грядущих экзаменов на бакалавра.
Мнение эксперта DDoS-Guard:
Потрясающе забавный фильм, кстати. Тут кто-то в терминале вывел список директорий, видимо сделал вид, что это копирование и вывел окошко с надписью Completed :). Дальше уже больше похоже на список директорий какого-нибудь компа на Винде, и, вероятнее всего, выбрана нужная папка с ответами для копирования. То есть, по смыслу подходит.
Тот же фильм. На съезде праворадикальной партии главный герой, притворяющийся техническим работником, использует ноутбук, с которого должна быть показана презентация, чтобы подключиться к скомпрометированному Wi-Fi, после чего его коллеги в фургоне снаружи запускают вместо нужной презентации похабный видеоролик с Гитлером и собаками.
Мнение эксперта DDoS-Guard:
Ну тут все совпадает. Подключается к wi-fi, список сетей. Wlcrack это реальная тулза. Нужна для перебора паролей. Ну и с функцией подключения к нему написано нечто странное, похожее на вызов утилиты (название вырезано с целью соблюдения законодательства РФ), которая работает с WiFI и умеет подбирать пароли различными способами к разным сетям (ну и вообще еще много чего интересного). Установлен тип сети с WEP шифрованием, канал 7 (2.4 ГГц сеть) и запущен поиск. Все правильно.
Тот же фильм. Хакеры используют довольно гротескный фишинг, посылая сотруднице нужной им компании от имени ее подруги открытку с котенком и ссылкой на «еще больше котят». Далее за кадром говорится, что, кликнув по этой ссылке, она предоставила им доступ во внутреннюю сеть.
Мнение эксперта DDoS-Guard:
В принципе выглядит достоверно, но из того, что мы видим, остается неясным, как именно будет доставлена вредоносная нагрузка. Быть может, что-то скачается при переходе на ссылку — какое-то расширение с вредоносным кодом или зараженный Java-апплет, но нам этих деталей не показали.
Вот так по мнению создателей интерактивной серии «Bandersnatch» в сериале «Черное зеркало» (2018) выглядит код игры — разрабу осталось клацнуть Enter, чтобы она запустилась.
Мнение эксперта DDoS-Guard:
Да, это вполне похоже на код игры на Basic, точнее, на часть кода. И действительно, если нажать Enter, сие чудо запустится.
Всеми любимый «Мистер Робот» (2019). По сюжету, хакерша сидит в людном месте и прямо со смартфона каким-то образом переводит крипту с кошелька, где складировались украденные деньги, «в равномерном объеме» на все криптокошельки толпе людей вокруг.
Мнение эксперта DDoS-Guard:
Запускается питоновский скрипт «ПереведитеДенякМногоПожалуйста», который, вероятно действительно переводит крипту куда-то. Допустим, так и есть. Идет CURL команда, посылающая запрос на криптобиржу, и ниже мы видим ответ сервера, выдавшего HTML-страницу, на которой это можно сделать. Стучится на свой кошелек, чтобы денег кому-то отсыпать. Ну и конец скрипта просто выводит надпись о завершении якобы трансфера денег. В принципе убедительно, хотя финал сцены, про то, что деньги распределяются по кошелькам кучи людей вокруг (и у всех прямо оказались случайно криптокошельки, и их номера известны?) — это откровенная фантастика.
По сюжету фильма «Кибер» так выглядит «вирусный код», путем внедрения которого хакер устроил аварию на китайской АЭС.
Мнение эксперта DDoS-Guard:
Что-то похожее на древний COBOL или ассемблер. На втором скрине выглядит как куски декомпилированного приложения, что логично и уместно, учитывая, что они разбирают как приложение взломало АЭС. Больше конкретики, к сожалению, по такой короткой сцене не скажешь.
Заключение
Можно сделать вывод, что с годами — по мере того, как компьютеры и смартфоны вошли в каждый дом, а программирование из элитного закрытого культа стало практически массовым занятием — ситуация с репрезентацией кода в кино и сериалах улучшилась.
Тем не менее, проведенный нами анализ показывает, что индустрии в этом плане все еще есть куда расти. Так как кинопродукция все-таки рассчитана на массового зрителя, скорее всего, стопроцентно верного отображения, как выглядит и работает код, на экранах мы не увидим никогда.
И это нормально, потому что кино целиком состоит из условностей (их коллекционированию посвящен, например, сайт-энциклопедия TV Tropes) — начиная с того, как работает на экране оружие или эффект от удара по голове — и заканчивая физическими свойствами объектов типа взрывающихся машин. Но по крайней мере совсем откровенной чуши становится все меньше, и это приятно.
А какие интересные примеры кода в кино/сериалах находили вы? Поделитесь в комментариях.
Комментарии (19)
HabraReaderZH
06.11.2024 10:47Уже была подобная статья там приводился пример фильма "Матрица: перезагрузка". В момент где Тринити выводит из строя электростанцию использовался правдоподобной код хоть и с древней уязвимостью.
vesowoma
06.11.2024 10:47В каком-то сериале начала 200х, вариации на тему "ментов", злой хакер что-то печатал на клавиатуре. На мониторе был открыт Ворд, но текст не набирался )
NeoCode
06.11.2024 10:47В Matrix Resurrections на экране Нео, когда он работает программистом игры, можно наблюдать некую довольно навороченную IDE, внутри которой есть и окна с кодом, и окна с трехмерной отрисовкой Матрицы, и различные логи... На каком языке код - неясно, но вроде бы там прямо в коде сочетается классический код на языке программирования и вставки из матричного кода. Сейчас под рукой нет фильма в высоком разрешении, так что вставлю пару размытых картинок, найденных в инете.
Demnlight
06.11.2024 10:47На последнем скрине чистый псевдокод на C/C++, который получили после дизассемблирования
XenRE
06.11.2024 10:47Да, это вполне похоже на код игры на Basic
Если конкретно - спектрумовский бейсик. Возможно действительно рабочая игра для спектрума.
По сюжету фильма «Кибер» так выглядит «вирусный код»
Декомпилированная в C виндовая dll.
beeruser
06.11.2024 10:47Возможно действительно рабочая игра для спектрума.
Игру можно было скачать. Но написана она явно не на бейсике, хотя
приведённый код и рисует часть игровой сцены nozhdyve.
https://x.com/gasmanic/status/1079164419488268288
Линк встроили в само шоу
NutsUnderline
06.11.2024 10:47так и придется посмотреть оригинал. На экране реально спектрумовский бейсик, графика в виде текстовых элементов заданных UDG. код похож на реальный и рабочий, но медленный, на экран выводятся "сердечки жизней", score, hiscore, и перемещающаяся хвостатая фигня. Но не уверен что rnd правильно используется.
впрочем вот оригинал https://viva-games.ru/game/nohzdyve
salieff
06.11.2024 10:47Ну там эксперт джаваскриптов для фронтэнда комментировал. Ему, что C/C++, что COBOL с ассемблером, все едино - "древняя непостижимая магия" ;-)
NutsUnderline
06.11.2024 10:47Наверное, специалистам по боевым искусствам так же весело смотреть популярные боевики.
так это целый жанр в ютубе. есть видео скажем "професиональный каратист смотрит сцены боевиков". Только он там то и дело кричит что это не по правилам :)
Любители же martial art наоборот реализуют "вживую" сцены из боевиков...
CaptainCrocus
06.11.2024 10:47Сериал "Убийство на краю света" (A Murder at the End of the World). Вторая серия. Хронометраж с 53:00 до 56:00. Героине нужно узнать SSID беспроводной сети, к которой подключены камеры и смарт-лампы. Для этого она вынимает смарт-лампу, вытаскивает микроконтроллер лампы, ну и дальше понятно, дизассемблирует прошивку. Только вот по названию регистров получается, что процессор в смарт-лампе x86. Богатые у них такие лампы по периметру умного дома стоят. )) Ну и еще пару косяков с представлением пароля в коде.
NutsUnderline
06.11.2024 10:47но программатор же! но дизасемблирует же! если уж им такое кто то подсказал то дальше просто стало лень, возможно.
че то даже это не очень похоже что это рабочий код, больше похоже на какие то данные, типа шрифта, паттерн повторяется
CaptainCrocus
06.11.2024 10:47Так я ж не спорю. Они действительно поработали неплохо над достоверностью. Чуть не дожали.
bezboroda
А как же терминатор 1/2?
olegantipovDDG Автор
Это уже было в разборах MovieCode (чуть ли не в первых), решили не повторяться)