Обновить
128K+

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

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

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

Помните «Шарарам»? Я перенёс его с Flash на Ruffle, и он перестал лагать

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

«Шарарам» – это старая, но до сих пор живая MMORPG по «Смешарикам». Огромный срез моего поколения, родившегося в нулевых, нашёл там первых друзей и приобрёл первые социальные навыки. Я до сих пор, в свои 23 года, возвращаюсь туда раз в один-два месяца: пообщаться с ровесниками и повспоминать золотые годы игры.

Но чем старше я становлюсь, тем сильнее желание «просто поиграть» превращается в желание помочь родному проекту. Отчасти это даже страх за него: все аналоги и конкуренты, включая западных вдохновителей, давно умерли, из чего очевидно, что и в Шарараме экономического смысла осталось немного. Думаю, создатели поддерживают его примерно из тех же чувств, что теплятся у меня.

Это желание вылилось в эксперимент, после которого Шарарам почти перестал лагать. Честно замерить FPS сложно – разброс между локациями огромный, – но разница видна невооружённым глазом: играть комфортно даже там, где раньше было слайд-шоу. А заодно игра снова заработала в современных браузерах!

Поиграть можно через альтернативный клиент shararam.sadfun.dev (или его десктопную версию). Надеюсь, когда-нибудь это попадёт в апстрим, и игра станет приятнее для всех. А ниже будет технический разбор, как я это сделал.

И как же?

Новости

ИИ-поиск бэкдоров и уязвимостей, часть 3: бэкдор и уязвимость в OLT C-Data

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

В прошлых двух частях (1, 2) было рассказано про найденные с помощью ИИ уязвимости, бэкдоры и недокументированные возможности для свитчей SNR и Huawei. В этой части пойдёт речь о бэкдоре в оборудовании OLT C-Data - операторском оборудовании для подключения абонентов по технологии EPON/GPON. В начале статьи будет описан сам бэкдор, а затем рассказано об особенностях использования ИИ для его поиска.

Читать далее

Анатомия VDD: Как я нашел RCE в форке Telegram, а Google Security не увидел «ничего вредоносного»

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

TL;DR Внутри альтернативного клиента ExteraGram работает внутренняя система динамического обновления компонентов. Через неё авторы могут в любой момент загрузить на ваш телефон код прямо из Telegram-канала, обойти окно установки (can_not_skip) и выполнить его в едином адресном пространстве приложения (с его UID и полными правами). В исследованной цепочке загрузки я не обнаружил проверки цифровой подписи. При компрометации канала или инфраструктуры обновлений это создаёт возможность массовой доставки вредоносного кода пользователям.

Как всё началось Был обычный вечер, делать было откровенно нечего. Я сам сидел на ExteraGram, и вдруг стало интересно - а как оно вообще внутри устроено? (Спойлер: после того, что я там увидел, я его снес).

Читать далее

Внутри Apple Neural Engine в M4. Часть 1: реверс-инжиниринг

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

Можно ли заставить Apple Neural Engine делать больше, чем позволяет Core ML? Авторы разобрали стек ANE в M4 до закрытых API, научились компилировать и запускать модели напрямую и заодно выяснили, что часть привычных представлений о возможностях ускорителя требует пересмотра.

Читать разбор

Железный ключ к Secure Boot RK35xx

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

Уже несколько лет в Positive Labs мы исследуем механизмы безопасности в SoC RK35xx от Rockchip. За это время нам и другим исследователям безопасности удалось весьма неплохо проанализировать их. В результате было обнаружено несколько уязвимостей, две из которых были интересны нам, как людям, причастным к «железу».

В первом случае нам пришлось разработать эмулятор eMMC памяти, чтобы эксплуатировать TOC‑TOU уязвимость в момент загрузки прошивки.

Во втором — мы атаковали SoC с помощью Power Glitch, воздействуя на процесс проверки прошивки.

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

Hardware Hacking

Реверс-инжиниринг версии файла формата КОМПАС-3D

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

Некоторое время назад понадобилось массово определять, в какой версии КОМПАС был создан файл без установки самой программы. Задача возникла при обработке большой базы чертежей и моделей (.cdw, .spw, .frw, .m3d, .a3d), так как для каталога неплохо было бы понимать минимальную версию программы, в которой файл ещё открывается.

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

Читать далее

Auro-3D: как в обычном PCM прячут высотные каналы

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

Я давно интересуюсь звуком, писал обзоры по железу, писал про Dolby Atmos. Меня не оставлял в покое формат Auro 3D, который нам обещает многоканальный звук, а чтобы послушать и услышать, нужно покупать дорогой AVR, который из 5.1\7.1 мог извлечь верха.

Читать далее

«Bro, what…?» #1. Первый контакт с crackme на Linux x86-64

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

Вы запускаете программу, о которой ничего не знаете. Она вежливо просит строку, а в ответ на ваш ввод насмешливо отвечает: «Bro, what are you trying to do?» И правда, что мы пытаемся сделать? Пытаемся понять ее.

Перед нами crackme – программа-головоломка, написанная для тренировки навыков обратной разработки: бинарник под Linux x86-64 без исходников и документации, который издевается над каждым, кто не смог его разгадать. Это первая статья цикла из трех о гибридном анализе крякми Getting Started Keygen (Mazzottis). Мы осмотрим файл штатными утилитами, найдем main в Ghidra, расшифруем «бессмысленные» имена переменных в реальную раскладку стека и подтвердим гипотезы в GDB. По пути встретим оптимизированный пролог без RBP, «хитрое» беззнаковое условие и std::string, спрятавшийся в трех переменных, которые на первый взгляд никак не связаны.

Во второй части цикла – мутационное тестирование и реконструкция скрытой структуры, в третьей – полный разбор хеш-функции и восстановление алгоритма на Python.

Читать первую часть

Портирование моделей 20-летней давности в современный космосим. Из X²: The Threat в X4: Foundations

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

В этой статье я хотел бы рассказать как я портировал корабли из старой игры X²: The Threat в новую игру X4: Foundations. Могут ли игровые ассеты из 2003 года быть актуальны в 2026?

Читать далее

Реверс алгоритма из прошивки устройства на базе ARM-процессора, часть 2

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

Продолжаю тему реверса алгоритма, ссылка на первую статью: https://habr.com/ru/articles/1064990/. В этой части доведу реверс до конца, постараюсь показать как делать не надо, почему декомпиляция хорошо, а эмуляция лучше )

p.s. Тут нет 50 минут, листинги в спойлерах повлияли, их можно не читать.

Читать далее

Проект eMMC-emu

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

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

В процессе разработки пришлось разбираться с FPGA, DDR4, AXI, Clock Domain Crossing и особенностями реальных хост-контроллеров. Оказалось, что они не всегда следуют спецификации (которой нет в открытом доступе) и порой предъявляют к eMMC собственные требования.

Нам приходилось отлаживать эмулятор с кардридером, программатором и даже одноплатником Orange Pi 3B. В итоге он смог загрузить Linux и перейти к режиму HS200.

Как превратить FPGA в eMMC и почему отладка хост-контроллера иногда сложнее самой эмуляции - читайте в статье.

Send CMD18 (READ_FULL_ARTICLE)

Получение shell и root shell на свитче Huawei S6330 с прошивкой V200R021

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

В прошлой статье было рассказано как “в три промпта” был получен shell для свитча SNR-2990X-24FQ (OEM DCN), в этой статье будет рассказано о более сложном реверс-инжиниринге свитча одного из топ-вендоров в мире сетевого оборудования.

Читать далее

Свет, камера, IDKFA!: как мы снимали первый российский фильм о реверс-инжиниринге

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

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

В 2001 году российского программиста Дмитрия Склярова арестовали в США по обвинению в нарушении DMCA — американского закона об авторском праве в цифровую эпоху. Скляров участвовал в создании программы Advanced eBook Processor: она позволяла сделать копию легально купленной электронной книги в формате PDF. На конференции DEF CON в Лас-Вегасе он рассказал о недостатках защиты Adobe, после чего был арестован. Скляров стал первым физическим лицом, которому предъявили уголовное обвинение по DMCA — хотя красть он ничего не собирался.

Постепенно вокруг реверса цифровых технологий стали формироваться правила, а сам он из вольного увлечения небольшой группы энтузиастов превратился в серьезное исследовательское направление. Как выглядел путь от обычного любопытства до профессии, рассказывает первое в России кино об обратной разработке «Как получить доступ ко всему: реверс-инжиниринг». За несколько месяцев фильм посмотрели более миллиона человек. 

Кстати, кинопремьеру мы также сделали в духе реверса. Из забавного у нас был пивной кран, который не нальет ни капли, пока ты не крякнешь простенькую сrack-me-программу. Она просила пароль и молча проверяла, верный он или нет. Правильного пароля никто не давал, зато сам файл был открыт, его можно было разобрать и понять, по какому правилу программа отличает верный ответ от неверного. Вычислили правило, получили пароль — и вот ты уже в некотором роде реверс-инженер, наслаждающийся вкусом пенного.

Читать далее

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

Книги по реверс-инжинирингу

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

Это продолжение статьи Материалы по хакингу на русском.

Вкратце — я собираю автоматические переводы материалов по хакингу и выкладываю их на сайте библиотеки. В этой подборке — книги для тех, кто хочет понимать программы, железо и протоколы не по документации, а изнутри: от устройства компьютера и ассемблера до Windows Kernel, ARM, Java-байткода, автомобильных шин, VoIP и аппаратного реверса.

Читать далее

Добавляем надежный recovery в Xiaomi Band 10 Pro

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

В руках у меня новые часы от Xiaomi, Smart Band 10 Pro, у них есть приличный минус в системе recovery, который устранен в других часах линейки Сяоми, я расскажу об устройстве данной модели, структуре прошивки, пакета OTA и покажу какое решение решение я реализовал, чтобы улучшить механизм восстановления часов.

Читать далее

Практический реверс‑инжиниринг источника питания Murata

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

Один из лучших способов изучить силовую электронику — это реверс‑инжиниринг качественных изделий. Недавно я полностью воссоздал DC/DC‑преобразователь Murata мощностью 369 Вт — от многослойной печатной платы до принципиальной схемы и конструкции магнитных компонентов.

В этой статье хочу поделиться с вами своим практическим опытом реверс‑инжиниринга импульсного источника питания RBQ-8.2/45-L48NBL2-CIS2.

Читать далее

Как за вами следит Яндекс: часть 1/3

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

Полный реверс-инжиниринг APK Яндекса: разбираем механизмы сбора аудио, геолокации, платежных данных и списков установленного ПО

Читать далее

Подборка книг о вирусах и защите от них

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

Я собираю автоматические переводы материалов по хакингу и выкладываю их на сайте библиотеки. И вот, миллионы сожженых токенов спустя, архив наполнился. В сегодняшней подборке книги как по анализу, так и по написанию малвари. Представлены книги под Mac, Android и Windows.

Читать далее

Сбрасываем счетчик на принтере Epson с помощью ghidra-mcp

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

В наличии есть струйный принтер Epson с СНПЧ и он периодически выдает ошибку, требующую сброса счетчика абсорбера. Платить то и дело не хочется, а найденная сервисная утилита сбрасывала только 3% от максимального знчения, которые быстро тратились и ошибка появлялась вновь. Уже какое-то время хотелось попробовать связку llm + ghidra-mcp в задаче по автодекомпилу, и вот случай представился. Под катом небольшая история о поиске значений для сброса и интересностях внутреннего устройства сервисной тулзы Epson.

Читать далее

Реверс алгоритма из прошивки устройства на базе ARM-процессора

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

Есть устройство, работает с чипами ss02-1, умеет в них писать и читать. Для этого в себе содержит алгоритмы генерации паролей на авторизацию и запись, мы хотим получить эти данные сами. Что имеем - прошивку устройства, серийный номер чипа, на основание которого генерируются пароли. Попробуем восстановить алгоритм, используя инструменты дизассемблирования и эмуляции.

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