Как стать автором
Обновить

Этот код не то, чем кажется: что творится на мониторе в фильмах и сериалах

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7.5K
Всего голосов 12: ↑11 и ↓1+15
Комментарии30

Комментарии 30

Это уже было в разборах MovieCode (чуть ли не в первых), решили не повторяться)

Первый код, который я увидел в фильмах, выглядел так:

Единственный рабочий код открывает клетки с динозаврами!

Уже была подобная статья там приводился пример фильма "Матрица: перезагрузка". В момент где Тринити выводит из строя электростанцию использовался правдоподобной код хоть и с древней уязвимостью.

Да, поэтому этот известный пример тоже не стали брать.

В каком-то сериале начала 200х, вариации на тему "ментов", злой хакер что-то печатал на клавиатуре. На мониторе был открыт Ворд, но текст не набирался )

Кто помнит, тот поймет

В Matrix Resurrections на экране Нео, когда он работает программистом игры, можно наблюдать некую довольно навороченную IDE, внутри которой есть и окна с кодом, и окна с трехмерной отрисовкой Матрицы, и различные логи... На каком языке код - неясно, но вроде бы там прямо в коде сочетается классический код на языке программирования и вставки из матричного кода. Сейчас под рукой нет фильма в высоком разрешении, так что вставлю пару размытых картинок, найденных в инете.

На последнем скрине чистый псевдокод на C/C++, который получили после дизассемблирования

Да, это вполне похоже на код игры на Basic

Если конкретно - спектрумовский бейсик. Возможно действительно рабочая игра для спектрума.

По сюжету фильма «Кибер» так выглядит «вирусный код»

Декомпилированная в C виндовая dll.

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

Игру можно было скачать. Но написана она явно не на бейсике, хотя

приведённый код и рисует часть игровой сцены nozhdyve.

https://x.com/gasmanic/status/1079164419488268288

Линк встроили в само шоу

https://youtu.be/Bl7rEfQK0qc?t=200

так и придется посмотреть оригинал. На экране реально спектрумовский бейсик, графика в виде текстовых элементов заданных UDG. код похож на реальный и рабочий, но медленный, на экран выводятся "сердечки жизней", score, hiscore, и перемещающаяся хвостатая фигня. Но не уверен что rnd правильно используется.

впрочем вот оригинал https://viva-games.ru/game/nohzdyve

Ну там эксперт джаваскриптов для фронтэнда комментировал. Ему, что C/C++, что COBOL с ассемблером, все едино - "древняя непостижимая магия" ;⁠-⁠)

Зато "Я питон не люблю, я такой супер программист".

  Наверное, специалистам по боевым искусствам так же весело смотреть популярные боевики.

так это целый жанр в ютубе. есть видео скажем "професиональный каратист смотрит сцены боевиков". Только он там то и дело кричит что это не по правилам :)

Любители же martial art наоборот реализуют "вживую" сцены из боевиков...

Сериал "Убийство на краю света" (A Murder at the End of the World). Вторая серия. Хронометраж с 53:00 до 56:00. Героине нужно узнать SSID беспроводной сети, к которой подключены камеры и смарт-лампы. Для этого она вынимает смарт-лампу, вытаскивает микроконтроллер лампы, ну и дальше понятно, дизассемблирует прошивку. Только вот по названию регистров получается, что процессор в смарт-лампе x86. Богатые у них такие лампы по периметру умного дома стоят. )) Ну и еще пару косяков с представлением пароля в коде.

но программатор же! но дизасемблирует же! если уж им такое кто то подсказал то дальше просто стало лень, возможно.

че то даже это не очень похоже что это рабочий код, больше похоже на какие то данные, типа шрифта, паттерн повторяется

Так я ж не спорю. Они действительно поработали неплохо над достоверностью. Чуть не дожали.

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

Простите, не понял идею с включением-отключением лампочек.

Я фильм не смотрел, но если я правильно понимаю задачу - в физическом доступе есть несколько устройств, которые подключаются к неизвестной Wifi сети. Задача - установить сеть, к которой они подключаются. И желательно пароль от этой сети добыть. Я правильно понял цель?

Да, правильно. Героиня хочет получить доступ к камере, ну если я сам правильно помню.

Самый простой способ, если мы знаем MAC лампочки или камеры (написан на корпусе/плате/коробке) просто послушать WiFi эфир и посмотреть к какой сети подключается лампочка/камера. Дальше перехват хэндшэйка и брут пароля.

Если же мы НЕ знаем MAC камеры/лампочки - мы слушая эфир WiFi отключаем несколько лампочек по питанию и смотрим на каких сетях уменьшилось количество клиентов, потом подключаем питание и смотрим где возросло количество клиентов. И так несколько раз. Чтобы не следить глазами пишем скрипт для анализа. Когда выявляем сеть - перехват хэндшейка и брут пароля.

У героини нет доступа к другим лампам в доме, только к тем, что у нее в номере.

Видимо, объяснятель из меня не очень. (( Попробую еще раз расширенно по шагам.

Дано:

Одна лампочка, которая подключается к неизвестной сети. И к которой есть физический доступ.

Задача:

выявить сеть, к которой она подключается.

Необходимое оборудование:

Компьютер* с ОС с модулем WiFi**

*возможно использовать некоторые смартфоны

** примерно 60% сетевых Wi-Fi карт можно легко работать в режиме монитора. Если какрта героини попадает в сотальные 40 - и не охота возиться с поиском или написанием спецдрайвера - можно купить сетевую карту, которая умеет работать в режиме монитора. Стоимость от 8$, например TP-Link WN722N.

Необходимый софт:

ОС Linux (можно Live USB, например с Kali), скрипт для аудита WiFi, например Airgeddon.

Вся настройка, для человека способного не только дизассемблировать прошивку, но и понять результат - дело 15 минут. Разберется даже школьник.

Приступаем к работе

Запускаем Airgeddon и видим все WiFi сети в радиусе действия нашего адаптера. А так же количество их клиентов и MAC-адреса клиентов. Предположим, что наша лампочка включена и есть среди них. Пишем скрипт на bash или python (или еще на чем угодно) чтобы результаты выдачи Airgeddon сохранялись и сравнивались. Далее делаем следующее:

  1. Выключаем лампочку - пргоняем Airgeddon, смотрим у каких сетей стало меньше клиентов и какие MAC-адреса пропали.

  2. Включаем лампочку - пргоняем Airgeddon, смотрим у каких сетей стало больше клиентов и какие MAC-адреса пропали.

  3. GOTO 1

Повторяем до тех пор, пока точно не определим какой MAC-адрес пропадает и появляется. Ну и заодно к какой сети он подключен. Если использовали ArtMoney - принцип, грубо говоря, тот же. Всей работы минут на 15-20 (это если первый раз и не спеша). Чем больше клиентов (лампочек) мы сможем выключать и включать за раз - тем быстрее вычислим необходимую сеть.

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

Спасибо, было очень интересно.

Жаль ни кто советский фильм Никита не вспомнил. Там взлом просто шикарный, правда я это понял только когда hexview увидел ;)

В последнем примере, конечно, не пахнет ни коболом, ни ассемблером. Последний скриншот - вообще нормальный код на чистом С, предпоследний - просто пачка описаний функций из DLL. Веселые имена функций sub_100500 - действительно скорее всего результат дизассемблирования.

По сюжету фильма «Кибер» так выглядит «вирусный код», путем внедрения которого хакер устроил аварию на китайской АЭС.

Это дизассемблирование/декомпиляция, вероятно IDAPro + Hex-Rays, а может и Гидра. Если это листинг с компа исследователей кода, то очень достоверно.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий