Код в фильмах: Новичок (Amateur) 2025

В этом фильме мало прямых заимствований. Весь код и его подобие, похоже, создавались специально для фильма. Одни и те же фрагменты кода повторяются в разных сценах. Такие повторы буду пропускать.
05:08 (здесь и далее - время от начала фильма)
В сцене разглядывания спутниковых снимков слева виден интерфес с именами программных файлов:

Editor 01
- exe_VideoComm...
- FindOptionsWid...
- Contribution.md
- DDI_usr.txt
- Package.json
Editor 02
- DDI_Compiler.js
- .metntion.bot
- .travis.yml
- .yarnrc
- Licence Plate Te...
- Contribution.md
- DDI_usr.md
- video_fileSource...
- .gulpfile.js
- package.json
- contentmenu.ts
- FindOptionsWid...
- Contribution.md
- Developer.txt
- dddos.Tools.ys
Выглядит, как какой-то проект на Тайпскрипте. Но ничего конкретного тут нет, и, вероятно, допущены опечатки: должно быть package.json, а не Package.json, опечатка в слове metntion (mention?), и расширение файла, вероятно, должно быть не .ys, а скорее .ts (клавиша t находится рядом с y).
Вот это сокращение “DDI” в начале файлов дальше будет мелькать весь фильм. Какого-то внятного объяснения, что это может значить, нет. Инициалы технического консультанта?
05:11
А тут вполне понятные команды установки связи. С логичным отображением процесса.

# Initializing Secure Satellite Network Connection...
$ ./initiate_secure_link.sh --satellite SAT-47 --encryption AES-256
# Authentication Required
Enter Access Key: ************
Enter Biometric Verification: [Verified]
Access Granted
Secure Uplink Established
Connected to CIA-SAT-47 at Lat: 34.0535° N, Long: -118.2449° W
Initializing Encrypted Communication Channels...
Encryption Protocol: AES-256-GCM
Session ID: 8FA79C90-20BE-4A38-AF18-349C12A6F4A7
Handshake Successful
# Loading Satellite Control Interface...
05:16
Фрагмент кода, вычисляющий орбитальный период спутника Земли, в секундах, по формулам Ньютона и Кеплера. Уж не знаю, зачем такое может понадобиться рядовому работнику, который смотрит на спутниковые картинки, но код рабочий.

import numpy as np
def orbital_period(a):
G = 6.67430e-11
M = 5.972e24
mu = G * M
T = 2 * np.pi * np.sqrt(a**3 / mu)
return T
И сразу же пример вызова этого кода. Видимо, тестировали корректность его работы:
a = 7000000
period = orbital_period(a)
06:27
По сюжету Чарльз пытается открыть зашифрованный файл, который ну никак не хочет открываться. Но картинка выглядит так, как будто открыли самый обычный вордовый “.doc” в текстовом редакторе, типа блокнота.

07:37
Только что у нас были зашифрованные документы, а теперь мы почему-то пытаемся расшифровать outright-libdes-dev-1_1-s_rh.bin. Интересно, откуда он взялся? В изначальном листинге файлов такого нет.

08:56
Но, видимо, мощности ноутбука не хватает, и Чарльз идёт в бункер к мощному компьютеру.
Запускает его и появляется код. Странный:

Тут намешан синтаксис нескольких языков программирования: Java (System.out.println), JavaScript (document.write), макрос или прагма (#execute), Windows-путь? (E:admin 851212118/bin.files), строчка Linux-шелла? ({ (VAULT_user_851212518@DDI_terminal):~$)
Никакого смысла в этом фрагменте нет. Просто наброс команд.
09:25
И вот пароль подобран, файлы расшифрованы, и в мелькающих фрагментах мешанины из разных языков добавляются фрагменты на C:

В них содержатся намёки на софт для камер наблюдения (CONFIG_CCTV), фрагменты из кода ядра Линукса, из подсистемы работы с таймерами для чипов picoXcell, предназначенных для использования в небольших и компактных устройствах (dw_apb_timer_of.c)
Этот фрагмент далее будет мелькать в разных сценах и окошках.
19:44
Чарльз не доверяет никому и начинает самостоятельное расследование. Опять какая-то мешанина из Java с непонятно чем:

20:49
А тут пошёл креатив. Взяли фрагмент кода из упомянутого выше ядра Линукса dw_apb_timer_of.c и перемешали строки с JavaScript-примером из совета на StackOverflow

goto try_clock_freq;
switch (num_called) {
for (let i = 0, k; i < str.length; i++) {
h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
function cyrb128(str) {
for (let i = 0, k; i < str.length; i++) {
pr_debug("%s: found clockevent timer\n", __func__);
21:27
Когда Чарльз готовит для демонстрации начальству 3D-модель уличной сцены, кто-то (он сам?) пишет код на Three.js - JavaScript-библиотеке для создания 3D-графики в браузере.
Он что, в браузере делает презентацию?

if (j > 0) geometry.faces.push(new THREE.Face3(0, j, j + 1));
const material = new THREE.MeshBasicMaterial({ color: 0xff0000 });
const mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
{
import_3D MODELER
media_source == collate_media_sources
И тут не обошлось тут без включения абсолютно чужеродного фрагмента про import_3D_MODELER.
Вот такое он в браузере намоделировал, получается:
Неплохо!
26:34
Опять мелькают два якобы редактора кода, но на этот раз на экране код на C под Windows, который является фрагментом драйвера, который скрывает рабочие процессы в Windows. В основном этот трюк используется вирусами и прочими малварями. Но и без творческого исправления тут не обошлось: в коде системные префиксы заменены на те самые “DDI”.
И оно вполне соответствует сюжету: в этой сцене Чарльз готовит разные отвлекающие штуки для слежения за коллегами и маскировки.

27:16
Фрагмент редактирования файла DDI_buildfile.py. Тут небольшой скрипт, которые использует библиотеку OpenCV для распознавания объектов на видео. Видимо, проиллюстрирован процесс отладки программы, которая будет следить за коллегами.

cap = cv2.VideoCapture('object_tracking_video.mp4')
tracker = cv2.TrackerKCF_create()
success, frame = cap.read()
bbox = cv2.selectROI(frame, False)
tracker.init(frame, bbox)
while cap.isOpened():
ret, frame = cap.read()
1:27:08
Чарльзу с подругой приходится убегать от преследователей, а на фоне запущен процесс удаления улик. И тут много чего удалятельного мелькает на экране. Каждый кадр удаляется что-то новое.

Повторения приводить не буду, перечислю только уникальные строчки:
- Удалим записи из логов, но почему-то только устаревшие. Свежие оставим
DELETE FROM system_logs WHERE timestamp < 2023-02-12; - Удаляем всю директорию логов
rm -rf /var/logs/* - И безопасно удалим какой-то один очень-очень важный файлик
shred -u /path/to/sensitive_file - Удаляем записи из логов ошибок, но только записи с низким приоритетом. Всё важное оставляем
DELETE FROM error_logs WHERE severity = 'low'; - И грохнем таблицу с записями об активных сессиях пользователей
TRUNCATE TABLE user_sessions; - И что-то удаляем кодом (на
Java?JavaScript?)db.systemData.remove({ ... }); - И удаляем кеш скачанных
deb-пакетовsudo apt-get clean - И удаляем файлики логов через поиск
find /path/to/directory -type f -name "*.log" -exec rm -f {} - И удаляем таблицу со старыми бэкапами
DROP TABLE IF EXISTS old)_backup_data; - А! Так это PostgreSQL тут у вас
VACUUM FULL; - Затираем записи в
syslogecho "" > /var/log/syslog - А теперь удалим из базы временные файлы, причём, только обработанные
DELETE FROM temp_files WHERE status = 'processed'; - И очередь отправки писем почистим. Удалим из очереди те, что уже были отправлены. Неотправленные оставим
DELETE FROM email_queue WHERE sent = true; - И, традиционно, микс из разных языков,
SQL+JavaScriptDELETE FROM db.temporary.remove({}); - И
SQL+shellLOG ROTATE --delete-system-files - Удалим информацию о временных файлах
TRUNCATE TABLE temporary_files; - И сами временные файлы
rm -rf /var/tmp/*
Очень похоже на то, что авторы загуглили как удалить информацию и нашли кучу примеров на разных языках об освобождении места на диске и в БД, и всё подряд добавили в фильм.
Почистили, смотрю, в основном только кеши, временные файлы и всё несерьёзное. Всю важную информацию при этом оставили нетронутой.
1:30:49
И, напоследок, сцена прошивки джейлбрейкнутого телефона, который за минуту до этого был куплен в уличной лавочке.
