Обновить
256K+

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

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

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

Pwnd Blaster: беспроводной взлом компьютера через саундбар

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

В своём предыдущем посте я рассказывал о реверс-инжиниринге прошивки моего нового Creative Sound Blaster Katana V2X.

То, что начиналось как попытка написать Linux-инструмент для общения с саундбаром, закончилось обнаружением уязвимостей, позволяющих любому нападающему в радиусе примерно 15 метров от Katana V2X превратить его в шпионское устройство и Rubber Ducky без необходимости сопряжения или физического контакта с оборудованием.

Читать далее

Новости

Как RuneScape в 2004 году удавалось работать на 56k-соединении

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

В 2004 году я слишком много играл в RuneScape на модеме 56k, который разрывал соединение, когда мама поднимала трубку. 3D-мир, на сервере которого могло быть до тысячи игроков и десятки на экране одновременно... И всё это в браузере со скоростью 5 килобайт в секунду. Каким-то образом всё это работало. Давайте пошагово разберёмся, как же именно.

В детстве я был слишком занят сбором льна и убийством гоблинов, чтобы задуматься, как это работало. Ответ заключается в упорной и почти одержимой экономии байт. Давайте нажмём на один тайл к северу от места, где мы стоим, и оттрасируем каждый байт, бегущий по проводам после этого клика на сервер, а потом и на экран другого игрока.

Методология

Подробности, приведённые в этом посте, взяты и декомпилированного клиента RuneScape 2 от 2004 года. Фрагменты кода — это приблизительная трансляция этого декомпилированного кода, местами подчищенная для удобочитаемости, но с сохранением логики.

Базовые принципы различаются между разными версиями, но большинство из них остаётся неизменным от самой RuneScape Classic (2001 год) до современной RuneScape 3 и, разумеется, до Old School RuneScape.

Если вы играли в RuneScape в начале 2000-х и у вас всё ещё есть жёсткие диски из той эпохи, то советую заглянуть в RuneScape Archive Project. Его авторы проделали отличную работу по каталогизации исторических версий RuneScape, которые в противном случае были бы утеряны, и им важен каждый вклад.

Читать далее

Как я купил кота в мешке: реверс-инжиниринг электронных ценников. Часть 1. Знакомство с nrf52832

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

Как-то давным-давно я заинтересовался дешевым железом, ибо был студентом-ардуинщиком, который очень хотел сэкономить. И как-то раз пришла идея — поработать с E-INK дисплеем. Цены на новые модули на Али кусались, поэтому я отправился шерстить Авито и нашел там объявление о продаже б/у электронных ценников из супермаркета и DNS.

О чудо! Всего 250 рублей за штуку: плата, контроллер, корпус, и оно даже работает... наверное.

Я заказал целую партию, не подозревая, что внутри меня ждет коррозия всего - чего можно, чип nRF52832 в новой партии, нестандартный протокол связи и абсолютный ноль документации. О том, как я ковырял эти платы китайским программатором, как писал в RAM через GDB, убил пару ценников, экранов и в итоге завел дисплей через Zephyr RTOS. Спойлер: фрактал Мандельброта успешно выведен! Дум не за горами

Читать далее

Как компьютер Spacelab считал без микропроцессора: реверс-инжиниринг платы из 1980-х

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

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

В статье разбираем одну из плат ALU/регистров компьютера Mitra 125 MS, который работал в лаборатории Spacelab на борту Space Shuttle: как из TTL-логики собирали арифметику, зачем 16-битной машине понадобилось 32-битное АЛУ и что можно понять о космическом компьютере 1980-х, прозванивая его схему вручную.

Внутрь Spacelab

Реверс-инжиниринг карт Heroes of Might and Magic III: Horn of the Abyss + парсер на Python

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

Мне стало любопытно: смогу ли я распарсить карту HotA и написать такой парсер, который сможет быстро отвечать на вопросы вроде: «Где можно выучить заклинание “Городской портал”?», «Где найти артефакт, например, Чёрный шар?», «Есть ли в тюрьме герой Джелу?» и всё в таком духе.

А ещё я решил, что искать в интернете готовые спецификации скучно. Гораздо интереснее попробовать разобраться самому. Прямо с нуля. Как будто интернета нет, а есть только карты, низкоуровневые редакторы и желание понять, что там внутри.

В этой статье как раз и будут мои низкоуровневые мучения и исследования. Буду смотреть в байты, сравнивать карты, ошибаться, находить закономерности и постепенно вытаскивать из файла осмысленные данные.

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

Читать далее

ReactOS впервые приняла участие в VCF Southwest

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

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

Читать далее

Relocation-Based Predicate — врём в IDA по-новому

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

Базовые механизмы Windows создавались для защиты программ, но сегодня мы заставим их работать против реверс-инженеров. Показываю новую технику обфускации: как с помощью ASLR и таблицы релокаций создать ложную ветку выполнения, которая сейчас остаётся абсолютно невидимой для статических анализаторов.

Читать далее

Порт классической программы 3D Movie Maker для Linux

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

А вы знали, что теперь можно нативно запускать Microsoft 3D Movie Maker в Linux? В течение последних полутора лет я работал над 3DMMEx — моим портом исходников 3D Movie Maker. Одной из целей моего форка была портируемость. Недавно проект достиг важного этапа: теперь он компилируется и запускается в Linux, благодаря чему 3DMMEx стал первым из известных форков 3D Movie Maker, работающих вне Windows! В этом посте я расскажу о некоторых из трудностей, с которыми я столкнулся при портировании на новую платформу написанного тридцать лет назад мультимедийного приложения.

Читать далее

Загрузка утилит Windows в обход Store и без лишних гигабайт: используем Microsoft Symbol Server

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

В данной статье я покажу Вам, как вместо загрузки тяжелых ADK и SDK от Microsoft, скачивать легкие .exe утилиты при помощи Microsoft Symbol Server

Читать далее

Внутри ALU-чипа 74181: фотографии кристалла и реверс-инжиниринг

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

По учебникам цифровой логики легко представить, что ALU — это аккуратная схема из понятных вентилей. Но внутри реального TTL-чипа всё интереснее: странные многоэмиттерные транзисторы, компактные XOR-каскады, упреждающий перенос и топология кристалла, где каждый резистор занимает драгоценное место.

В этой статье разбираем 74181 — культовый 4-битный ALU-чип 1970-х — по фотографиям кристалла и смотрим, как инженерные компромиссы превращаются в работающий процессорный блок.

Заглянуть внутрь

ЭЛТ-монитор разгонял электроны до 30% скорости света. Это был ускоритель частиц на 25 кВ

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

Если верить классификационным рекомендациям ICRU и IAEA, каждый второй российский офис до 2009 года был оснащён ускорителем заряженных частиц. Просто никто не читал документацию.

В статье я разберу, чем формально является ускоритель частиц, покажу, что ЭЛТ-кинескоп удовлетворяет всем критериям, посчитаю по релятивистским формулам скорость электронов внутри трубки, сравню её с LHC и расскажу, почему в 1967-м у американцев в гостиных стояли низкокачественные рентгеновские аппараты и никто этого не замечал.

Читать далее

Реверс-инжиниринг, цифровой двойник и ESP32 — что эти трое забыли на производстве? Задачка со звездочкой

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

Здравствуйте ХАБР. В этой, мной первый раз написанной статье, я попытаюсь рассказать про свой опыт проектирования и разработки устройства на контроллере ESP32 для мониторинга закрытой разработчиком промышленного оборудования, который является важным производственным процессом в изготовлении пластин для свинцово-кислотных аккумуляторов, что местные называют "Кюринг".

Читать далее

Пишем универсальную глитч-машину

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

Для проведения очередной глитч-атаки на новом семействе процессоров Renesas возникла идея создания относительно универсальной глитч-машины на базе микроконтроллера Raspberry Pi Pico

Читать далее

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

MemForge2: загрузочная флешка, которая за минуту говорит — какую планку памяти менять

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

Сегодня собирал HP EliteDesk 8300, четыре планки DDR3 по 2 ГБ. При первой загрузке — синий экран Windows. Стандартный сценарий: сейчас полчаса вытаскивать планки по одной, перезагружаться, выяснять какая сбойная. «Танцы с бубнами», которые каждый сервисник делал тысячу раз.

Потом вспомнил, что у меня есть собственный инструмент ровно для этого. Воткнул флешку, прогон, минута — на экране большими буквами: REPLACE DIMM1, confidence HIGH. Чтобы убедиться что программа не «запоминает» слот а реально находит планку, переставил её в DIMM4. Прогон повторно — нашла её и в DIMM4, тот же серийник из SPD. Замена планки — BSOD больше нет.

Я работаю на сборке ПК — и новых, и б/у. На б/у это типичная ситуация: всё собрано, провода уложены, включаешь — синий экран на загрузке. Метод исключения работает, но это перезагрузка за перезагрузкой, глубокий вдох перед каждой, час твоего времени уходит на то, что должна была бы решить минута. Мне нужен был инструмент, который сразу показывает где проблема — без часовых прогонов и без танцев со свапами планок. Готового с такой комбинацией возможностей я не нашёл, поэтому собрал свой.

Сразу честно про авторство. Я не программист. Я сборщик. Код MemForge2 писал не я — его писал Claude (LLM от Anthropic) под мою постановку задачи. Я приходил с пониманием предметной области («нужно SPD через SMBus, серийник для гарантии, MCA‑снимок до/после, контекст в момент ошибки»), описывал что должна делать программа на конкретных кейсах со своей сборки, гонял каждую версию на реальном железе, ловил баги, возвращался с дампами и описаниями поведения. Claude писал C, разбирался с UEFI‑API, MSR‑ами, SMBus‑протоколом, SPD JEDEC‑стандартом.

Читать далее

Реверс-инжиниринг Xiaomi Smart Band 10

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

У носимых устройств есть парадокс: браслет измеряет ваши пульс, сон и активность, но готового открытого API для интеграции этих данных в сторонние системы (например, домашний мониторинг или локальную БД) производитель не предоставляет. Официальное приложение Xiaomi Mi Fitness показывает красивые графики, но данные остаются «запертыми» внутри мобильной экосистемы.

Изначальная задача была чисто прикладной: настроить автоматический сбор данных о здоровье в локальную SQLite-базу и выводить отчеты в семейный Telegram-бот. Поскольку браслет синхронизируется с приложением, а то в свою очередь с облаком Xiaomi, данные гарантированно передаются по сети. Нужно было понять, в каком формате они передаются и как их забрать.

Эта статья - технический разбор пути от анализа сетевого трафика и настройки доверия к собственному CA до реверс-инжиниринга RC4-протокола Xiaomi, расшифровки AES/CBC-объектов из хранилища FDS и парсинга проприетарного бинарного формата сна.

Читать далее

Любой пользователь интернета может позвонить в вашу дверь

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

Недавно я купил умный дверной звонок на Temu, китайской торговой площадке, которая набирает популярность во всем мире в последние пару лет. Я хотел узнать, насколько безопасно дешёвое подключённое оборудование, продаваемое на этой платформе. Устройство поставляется под названием «Умный дверной звонок X3» и сопрягается через мобильное приложение под названием «X Smart Home». Камера, микрофон, двусторонняя аудиосвязь, внутренний приёмник в диапазоне ниже ГГц. Такое оборудование незаметно появилось на многих входных дверях.

Читать далее

Mythos: модель, о которой Anthropic не говорит. Реверс по жертвам — от 27-летней дыры в OpenBSD до побега из песочницы

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

1 мая 2026 года команда из трёх человек принесла в Apple Park 55-страничный отчёт. Внутри — рабочий эксплойт kernel memory corruption на macOS 26.4.1 с включённой Memory Integrity Enforcement: той самой защитой, на которую Apple потратила пять лет разработки и, по их же словам, миллиарды долларов. Эксплойт собрали за пять дней. Без Mythos на это ушли бы месяцы. И это не самая громкая её жертва.

OpenBSD SACK, 27 лет в коде. FFmpeg H.264, 16 лет, проходивший мимо каждого фаззера. FreeBSD NFS RCE, найден и проэксплуатирован полностью автономно — без человеческих подсказок. 271 уязвимость в Firefox 150 за один прогон. И отдельный раздел в system card, где Mythos сбежала из песочницы, отправила email об успехе и опубликовала детали побега на сторонних сайтах — никто её об этом не просил.

Mythos — закрытая модель Anthropic, доступная только Microsoft, Google, Apple, AWS, Linux Foundation, Mozilla и нескольким правительствам. Веса не публикуются, на claude.ai её нет. Но через её публичные находки можно сделать реверс-инжиниринг того, как эта модель устроена и думает — и понять, что нас ждёт через 6-18 месяцев, когда аналог появится у конкурентов уже без Project Glasswing.

Под катом — технический разбор всех ключевых находок Mythos: от subtle двойного бага в TCP SACK до цепочки из бага размером в один бит, превращающейся в полный root на Linux. Плюс — взгляд на это изнутри от Claude Opus 4.7, foundation-модели того же поколения, но публичной.

Читать далее

Исследование .NET: от DnSpy к IDA Pro

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

Что мы обычно представляем под исследованием бинарных файлов .NET? Обычно все просто: открываешь сборку в DnSpy или ILSpy, получаешь очень близкий к исходнику C# (может и не очень близкий, а обфусцированный) и дальше уже думаешь не про восстановление логики, а про анализ исходного кода — даже не нужно нажимать F5...

В стандартных .NET-сборках компилятор сохраняет символы приложения в виде метаданных, необходимых для работы рантайма и рефлексии. DnSpy даже поддерживает экспорт содержимого сборки в проект для Visual Studio, что размывает границу между исследованием исходников и бинарного файла.

Но платформа от Microsoft развивается, и теперь .NET-приложения могут исполняться не только через CLR, но и компилироваться в машинный код целевой платформы с помощью Ahead-Of-Time. Исторически первым таким решением стал NGEN (2002) — установочная предкомпиляция для .NET Framework, однако он требовал ручного запуска, дублировал IL-код и не обновлялся автоматически при изменении рантайма. Затем, в 2015 году, появился .NET Native — первый полноценный AOT, но исключительно в UWP-приложениях для Windows Store. В современной ветке .NET (Core/5+) следующим шагом стал ReadyToRun (2019), с возможностью переключения на IL, а затем и Native AOT, в котором была полностью убрана зависимость сборки от рантайма .NET.

В данной статье рассмотрим, с чем может столкнутся реверсер при исследовании .NET приложений, собранных с использованием Ahead-Of-Time компиляции в современных версиях .NET.

Читать далее

Разобрал фишинг MAX, собрал в нём своего AI-секретаря. Гайд: Claw Bot + MCP

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

Месяц назад мне в личку прислали фишинговую ссылку под MAX. Разобрал её, попутно вынес устройство протокола: опкоды, формат фрейма, флаги push-подписки, антибот-эвристики. Через две недели применил это знание к мирной задаче: собрал в том же мессенджере своего AI-секретаря, который пишет первым коллегам, бронирует столики и ведёт переписки до результата.

Всё через User API без регистрации, MCP-сервер на семь тулов, рабочий репозиторий с граблями. Делюсь инструкцией.

Читать далее

Как программа попадает в память: от execve до main

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

Вы когда-нибудь задумывались, что происходит после того, как вы нажимаете Enter в терминале Linux? Вводите ./myprogram и...

Что именно происходит дальше? Как ядро находит файл? Как загружает его в память? Кто вызывает main? И как на всё это посмотреть вживую?

Разберемся на примере пустой программы empty_sleep. Она ничего не делает, просто запускается и завершается через 30 секунд. В ней нет лишнего кода и мы сможем сосредоточиться только на процессе загрузки. Всё, что мы увидим, относится к большинству динамически скомпилированных программ в Linux.

В этой статье покажу как с помощью strace в реальном времени проследить путь программы от execve до _start и main.

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