Обновить
64K+

Реверс-инжиниринг *

Расковырять и понять как работает

177,41
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Озвучил всю GTA V по‑русски нейросетью: как сгенерировать 220 часов речи и не привлечь внимание санитаров

Уровень сложностиПростой
Время на прочтение21 мин
Охват и читатели5.2K

Всем привет! Началось всё с ролика про нейро‑GTA V: к прохожим в игре подключают нейросеть, и с ними можно разговаривать и взаимодействовать. Идея устроить приключение со случайным бомжом мне очень понравилась, и я полез искать русскую нейроозвучку: чтобы сразу было аутентично, хотелось снова пройти игру, слушая диалоги, а не читая субтитры на ходу, как при первом прохождении. Тем более как прикрутить говорящую на русском нейронку я уже представлял.

Но нашлась только неполная версия, довольно кривая и почти одноголосая. Я прикинул объём и цену генерации, посчитал, не поверил, пересчитал ещё два раза и решил: почему бы и не попробовать. Сделал тестовый ролик, спросил в канале, стоит ли браться. А тут ещё GTA VI назначена на 19 ноября 2026, и на этой волне многие захотят перепройти пятую часть. Короче, взялся.

В статье расскажу, как Rockstar хранит звук и как узнать, кто и что говорит в каждом из 260 тысяч файлов. Какими моделями я распознавал речь, делил голоса на мужские и женские и синтезировал русский. Как уложить его в катсцены, почему игра падала, как вернуть всё модом и во что это обошлось.

Читать далее

Новости

Бэкдор с паролем 123456 и ключи в коде: как ИИ вскрывал «шифрованные» USB-накопители

Время на прочтение10 мин
Охват и читатели10K

У «защищённой» флешки нашлись два скрытых аккаунта с паролями 123456 и SECZURE.COM, и любым из них файлы расшифровывались без пароля администратора. В трёх других продуктах для шифрования и защиты от копирования ключ вообще не зависел от пароля пользователя: его удавалось достать из самой программы и файлов на накопителе. Реверсер Xusheng Li разбирал их вместе с ИИ-агентом. На одну утилиту хватило одного промпта и семи минут. Для другого продукта понадобилось около девяти минут на распаковку установщика и статический анализ и два промпта, а затем ещё около 26 минут и шесть коротких промптов с подключённым накопителем.

Читать далее

Кто потерял моего ребёнка? Попытка реверс‑инжиниринга десятилетнего бага в системе бронирования авиарейсов

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели11K

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

Читать далее

Классическая Mac OS на Nintendo Wii: какие баги Apple пришлось обойти по дороге

Время на прочтение9 мин
Охват и читатели9.7K

Классическая Mac OS 7.6 и 9.2.2 впервые дошли до рабочего стола на Nintendo Wii. Автор порта Rairii, который раньше перенёс на консоли Nintendo Windows NT, рассказывает, что для этого пришлось сделать: перекроить адресное пространство под загрузчик Trampoline, подделать контроллер прерываний и SCSI-диск, обойти баг копипаста в коде Apple, из-за которого без второго последовательного порта система зависает в бесконечном цикле, и найти в своём драйвере ошибку, сдвигавшую данные на один байт. На настоящей Wii версия 7.6 грузится с SD-карты примерно за 40 секунд.

Читать далее

Как набор грязных хаков добавил мультиплеер в легендарную игру: разбираем архитектуру SAMP

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели14K

Осторожно: эта статья — не просто очередная ретроспектива с воспоминаниями, а конкретный разбор сетевой архитектуры и хаков, благодаря которым стал возможен мультиплеер в GTA аж на 1.000 человек одновременно. Если вам интересен геймдев и то, как работают игры под капотом — статья обязательна к прочтению!

GTA: San Andreas запомнилась нам как легендарная игра с немыслимым, по меркам 2004 года, масштабом. В ней был и огромный бесшовный мир, состоящий из трех городов, и массивный автопарк аж из 213 транспортных средств, и длинная интересная история с кучей сайд‑активностей, прохождение которых занимает как минимум несколько дней, и даже элементы RPG с базовой прокачкой персонажа.

И вот всё в ней было идеально, кроме одного — мультиплеера. Rockstar не успела доделать полноценный режим сетевой игры, оставив лишь подачку в виде локального кооперативного режима на PS2, в котором даже миссии проходить было нельзя. Однако группа моддеров под руководством Kalcor смогла воплотить то, что не удалось сделать Rockstar — реализовать мультиплеер в GTA SA аж на 1.000 человек одновременно. И о том, как им удалось это сделать, я расскажу в рамках сегодняшней статьи!

Читать далее

Копируем содержимое Яндекс.Диск к себе

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели8.5K

Есть Яндекс.Диск объемом ~500GB, заполненный в основном фото (RAW и JPEG) и видео, и задача сохранить все его содержимое на локальный диск.

Вроде бы ровно для этого и нужен официальный клиент - но в реальных условиях он повел себя крайне странно.

Пришлось брать дело в свои руки, а заодно плотнее познакомиться с node:streams...

Читать далее

Внутри диаграммы Ганта: холст 480 на 360, палитра на 30 цветов и число без последнего бита

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.8K

Я собираю файл конфигурации из XML так, чтобы он совпал с платформенным с точностью до бита. Диаграммы Ганта в типовых конфигурациях пустые, и на них ушло шесть дней. Внутри нашлись обычная диаграмма, воображаемый холст 480 на 360, число, у которого платформа теряет последний бит, и палитра, где серия номер -1 получает 15-й цвет. Рассказываю, как это устроено и как добывалось: дизассемблер, Frida и серия загрузок платформой.

Читать далее

Давай отлаживать по TCP

Уровень сложностиСложный
Время на прочтение5 мин
Охват и читатели9.3K

Когда в моей Среде разработки К дошла очередь до отладчика, выбор был такой: по HTTP - проще, но с глюками, знакомыми по мобильной разработке; по TCP - быстрее, но протокол закрытый: им штатная среда говорит с тонким клиентом. Я выбрал TCP: снял обмен с провода и повторил его. RSA-1024 с PKCS#1 v1.5, 192 байта на тройном DES, NTLM, контрольная сумма по полям GUID и идентификатор, который нельзя делать случайным. Рассказываю, где спотыкался и что получилось: точки с условием, шаги, стек, локальные, вычисление и остановка по ошибке - на живом клиенте.

Читать далее

Пропуск вшитых интеграций в TikTok на Android: анализ TTVideoEngine, ReVanced-патч и k-анонимность

Уровень сложностиСложный
Время на прочтение6 мин
Охват и читатели5.9K

Разбор медиастека TikTok на Android: как устроен закрытый плеер TTVideoEngine, поиск методов в обфусцированном байт-коде через сигнатуры ReVanced, алгоритм адаптивной проверки таймлайна и архитектура базы таймкодов на Cloudflare с kk-анонимностью.

Читать далее

Я просто хотел тёмную тему

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели5.7K

Разработчики на одной платформе пятнадцать лет просят тёмную тему в своей среде разработки. Были раскраски модулей, инверсия цветов, перехват рисования. В новой версии платформы тёмная тема наконец появилась, но только у пользователей. Я перестал ждать и решил сделать сам. Чтобы перекрасить окно, пришлось написать своё окно. Для этого нужно было читать гигабайтный файл конфигурации без платформы. А чтобы проверить, что читаю правильно, — выгрузить 90 385 файлов байт в байт и по дороге повторить порядок обхода std::unordered_map из MSVC. Рассказываю, что встретилось на каждом шаге и сколько времени это экономит.

Спуститься в подвал

Разобрал сейв Skyrim VR ИИ-агентами и сделал из него словарь для английского

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели5.2K

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

Читать далее

Новый робот — та же блокировка: как мы разлочили Quectel RG255C-GL

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.6K

В Agibot X2 Ultra с Quectel RG255C-GL рабочая российская SIM читалась, но модем не регистрировался. Разобрали LOW-диапазон CLADE, нашли проверку MCC 250 и изменили один бит. Затем пересчитали MBNv7 и проверили LTE, HTTP и HTTPS. Продолжение кейса с EG25-GC — на новой платформе.

Читать далее

Как мы запустили LTE в китайском роботе, изменив один бит в прошивке модема

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K

Я Лев Ларин, инженер Unibot. Мы развиваем UNIBOT Fleet, подключаем к ней коммерческих роботов и дорабатываем их управление, интеграции и работу с данными.

В роботе-официанте стоял Quectel EG25-GC. Вставили рабочую российскую SIM-карту: модем прочитал её, нашёл операторов, но в сети не зарегистрировался. Замена APN и второй оператор ничего не изменили.

Пришлось разбирать прошивку. В сжатом коде Qualcomm Hexagon нашлась проверка страны, которая запрещала работу в России и Иране. Для изменения российского MCC хватило одного бита. Затем потребовались новые хеши, подпись и проверка связи на устройстве.

Читать далее

Ближайшие события

Открываем секретный файл с диска «Лучшие игры для IBM PC #1» 1994 года

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели20K

Всё произошло очень быстро: какая‑то ностальгическая статья про сборники Classic Fond — и вот я уже качаю образы «Лучшие игры для IBM PC» с Internet Archive. Первым скачался 25-й диск. Открыл и вспомнил всё: школу, переход рядом с ВДНХ, палатки. Ешь беляш, смотришь, какие альбомы вышли, ну и, конечно, сборники Classic Fond.

В статье будем пытаться открыть секретный файл с дисков Classic Fond.

Читать далее

Оживляем дисплей от приборной панели автобуса

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели11K

Приветствую всех!

Насколько сложно запустить приборную панель от автобуса, грузовика или ещё какой-то спецтехники и вывести на неё какие-нибудь данные? Возможно ли вообще это сделать? Самое время выяснить это, попробовав провернуть всё самому.

Итак, сегодня мы попробуем запустить дисплейный блок от приборной панели старого автобуса. Разберёмся, по какому протоколу он работает и что с ним ещё можно сделать. Как водится, будет много интересного.

Press F1 to continue

Руткиты изнутри: типы, работа, защита

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели5.7K

Разбираю руткиты от ring 3 до прошивки. Как прячутся в ядре, как их ловят через rkhunter, Secure Boot и анализ памяти. С кодом на Cи.

Читать далее

Как я простенький keygen писал

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.6K

Это моя первая статья подобного рода(да и в целом любого рода), в которой я покажу как писал keygen для простенького приложения. Я использовал динамический анализ через x96 dbg, плюсы для keygen'а, и, конечно же, родненький ассемблер. Статья предназначена для новичков в реверсе и всех, кто хочет что‑то вспомнить. Если зайдет — это может превратиться в серию статей с повышающимся уровнем сложности реверса, но это в мечтах, а пока к сути.

Да давай уже

Claude помог оживить гаджет мертвой компании — и чуть его не добил. История воскрешения трекера сна Sense

Время на прочтение5 мин
Охват и читатели10K

Американский разработчик Джозеф Сперриер перед переездом нашел в шкафу Sense — трекер сна компании Hello, которая закрылась в 2017 году и унесла с собой облако. Хабр обозревал этот шар еще в 2014-м. Летом 2026-го Сперриер решил вернуть его к жизни вместе с Claude. Получилось за шесть недель — с проводами, неверной прошивкой и тупиком на 19 дней, в который человек и модель зашли вместе.

Читать далее

40-летний скрытый баг: как незаметно ломалась игра Infidel

Время на прочтение11 мин
Охват и читатели8.5K

Дикий указатель, который 40 лет портил память в классической игре Infidel. Баг компилятора ZIL, который никто не заметил. Разбор полётов от Эндрю Плоткина (Zarf) с погружением в ассемблер Z-машины.

Читать далее

Корабль Тесея: сколько деталей нужно заменить, чтобы клавиатура стала новой?

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.5K

В какой момент доработка чужого open source проекта превращается в создание собственного устройства? Когда заменена одна деталь? Половина? Почти все? Или когда от первоначальной конструкции остается только идея?

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

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

Но прежде, чем рассказать, как я дошел до этого, стоит вернуться немного назад.

Читать далее
1
23 ...