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

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

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

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

Чиню трейнер для игры Enter the Matrix

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров1.5K

Всем привет,

Решил я давеча поиграть в одну из своих самых любимых игр (ещё со времён компьютерных клубов) про похождения Штирлица Нео, Матвея Морфеуса и про их побег из дурдома Матрицы. Но, оказалось, что читы не работают, таблиц для Cheat Engine нет, а возраст уже не тот, чтобы тащить эту игру как есть.

Так я и пришёл к тому, чтобы взять да починить трейнер для этой игры от PiZZADOX. Точнее, подсмотреть, чего они там в процессе игры патчат и сделать точно так же, но на постоянной основе (прямо в EXE). Об этом и будет мой рассказ...

Читать далее

Новости

Восстановление блока SRS Mitsubishi

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

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

Читать далее

Обратное проектирование: от машиностроения до электроники

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров1.3K

Если бы у инженеров был девиз, он бы звучал так: «Когда никто не знает, как это устроено — мы выясним». Обратное проектирование — это не просто технология. Это искусство тех, кто умеет видеть в металле алгоритм, в плате — замысел, а в сломанной детали — производственный шанс. Это когда ты не проектируешь — ты воскрешаешь. Не создаёшь — а возвращаешь к жизни.

Реверс-инжиниринг — это инженерный шаманизм. Ты берёшь объект, у которого нет документации, нет автора, нет паспорта — и превращаешь его в цифру, модель, процесс. Это значит, что производить можно снова. И снова. И снова.

Когда всё работает — про реверс не думают. Но когда ломается, исчезает, теряется — он становится единственным ответом. Потому что оригинал — потерян, а задача — осталась. И ты или сдаёшься. Или реверсишь.

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

Читать далее

Декодируем 90-ые: реверс-инжиниринг и криптография на заре разработки ПО

Время на прочтение10 мин
Количество просмотров4.7K

В августе 2020 года к нам обратился клиент с кэшем из заблокированных документов QText из середины 90-х, пароль для которых он утерял.

QText — это редактор из времён DOS, использовавшийся для обработки иврита и английского текста. Написан он на Pascal и был выпущен где-то за 15 лет до того, как мы с @Elisha занялись обратной разработкой.

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

Надеюсь, нам удастся раскрыть некоторые особенности ранней разработки потребительского ПО в Израиле. В частности, мы хотим показать, как в те времена реализовывалась криптография. Ещё одна наша цель — это сохранить описанные здесь знания и инструменты — многие из которых едва дотянули до нашего времени.
Читать дальше →

ЛИСС. Оживляем самый суровый транспортный информатор

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.9K
Приветствую всех!

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



Итак, в сегодняшней статье поговорим о том, что это за устройство, а заодно и постараемся его оживить. Заодно разберёмся, как оно работает. Традиционно будет много интересного.
Читать дальше →

Внедрение кода в Mach-O файл своими руками для iOS

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров454

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

Читать далее

Пятнадцатый релиз ReactOS в четвертой ветке

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

Без каких-то предварительных новостей, 21 марта 2025 года проект ReactOS выпустил новый релиз — 0.4.15. В данной статье мы рассмотрим новые функции релиза и некоторые особенности.

Читать далее

Имитатор касаний. Ч2: Железная часть

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.1K

Вводить руками 10000 вариантов пароля неудобно и долго. Человек часто сбивается и пропускает варианты. Лучше сделать имитатор касаний, который быстренько переберёт все ключи сам. Его можно использовать и для других целей. А ещё это очень весело :)

В этой части выясним направление осей координат и займёмся железом.
Читать дальше →

Генератор случайных чисел, застрявший на одном значении

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

Моё исследование посвящено мини-игре Green Toad House в New Super Mario Bros (NSMB). В этой мини-игре используется случайность, поэтому в процессе я изучил генератор случайных чисел (RNG) NSMB.

Чтобы пост не был слишком длинным, будем считать, что вы знаете, что такое RNG, а также о концепции порождающих значений (seed). Если нет, то вот хорошие ресурсы для изучения: pannenkoek2012 в YouTube (SM64)Retro Game Mechanics Explained в YouTube (SMW)Википедия.

Читать далее

Прямая без препятствий. От чего и зачем нужно защищать мобильные приложения

Время на прочтение8 мин
Количество просмотров2.9K

Привет, Хабр! На связи Николай Анисеня из отдела перспективных технологий Positive Technologies. Так вышло, что в компании я уже много лет занимаюсь безопасностью мобильных приложений, исследую тренды этого направления и, как и все, наверно, специалисты в этой области, ломаю голову: как сделать мобильное приложение более защищенным. Этой публикацией я открываю цикл статей на тему безопасности мобильных приложений и устройств, корень которой (начнем со спойлера!) — в анализе кода. В этой статье расскажу об угрозах мобильных приложений, сценариях атак на них и о главном парадоксе в их разработке. Интересно? Тогда погнали!

Разобраться

Инфракрасный хакинг: взламываем пульт от телевизора Samsung

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7.5K

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

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

В статье поговорим о реверс-инжиниринге и аппаратном хакинге протоколов дистанционного ИК-управления: от подготовки необходимого оборудования до перехвата и декодирования сигналов. Взломаем пульт от телевизора Samsung и поделимся библиотекой ИК-сигналов, которая позволит вам с легкостью декодировать передачи для других устройств — например, камина Electrolux и кондиционера Funai. 

Читать далее

Разбор тестера радар-детекторов

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

Добрый день, решил сделать краткий обзор на простое устройство для тестирования автомобильных радар‑детекторов.

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

Читать далее

Типовой процесс разработки электроники

Время на прочтение6 мин
Количество просмотров6.9K

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

В статье я опишу, как устроен типовой процесс разработки электроники на самом деле – на примере и с картинками (это может быть маленькая или большая компания, процесс плюс-минус схож). За пример мы возьмем некую материнскую плату компьютера (процессор в данном случае не принципиален) и разберем типовой процесс разработки такой материнской платы.

Читать далее

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

Повышаем привилегии в Windows через CVE-2024-30085

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

CVE-2024-30085 — это уязвимость в подсистеме Windows Cloud Files Mini Filter. Код подсистемы располагается в cldflt.sys — это драйвер минифильтра, и он относится к предустановленному клиенту облачного сервиса Microsoft OneDrive.

Уязвимость фигурировала на прошедшем в Ванкувере Pwn2Own 2024, где команда ресёрчеров Team Theori использовала эксплойт для этой уязвимости в цепочке эксплойтов, осуществляющих Guest-to-Host-Escape (побег из виртуальной машины) из-под управления VMware workstation, за что и получила свои заслуженные 13 очков Master of Pwn.

В этой статье мы рассмотрим корни уязвимости CVE-2024-30085 и техники эксплуатации, применимые во время эксплуатации кучи в ядре Windows 10 22H2 19045.3803.

Читать далее

Robotron S6130 — Восставший из мертвых

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

История ремонта этой пишущей машинки тянется уже 8 лет! Шутка что ли, это Самый Первый Артефакт моего YouTube-канала!

Robotron S6130 — многофункциональная пишущая машинка формата A2 на базе процессора Z80, с функцией запоминания набранных текстов во встроенной оперативной памяти, с записью и воспроизведением на магнитофон, а также возможностью приема и передачи текстов с ЭВМ по последовательному порту!

Но, перед тем как появиться у меня, агрегат порядка четырех лет пролежал в сыром, заброшенном помещении на горе заплесневевших книг. За это время питающая ОЗУ резервная батарейка протекла и пожрала дорожки на материнской плате. Коррозией покрылись и ноги ближайших микросхем, ОЗУ. Разумеется, на первом обзорном видео машинка не подала признаков жизни, и я увез ее в гараж на длительное хранение.

Да начнется оживление

WCC: Гримуар колдуна

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

Рассказываю о еще одном необычном проекте, способном удивить даже опытных и подготовленных разработчиков. Добро пожаловать, снова.

Читать далее

Как мы взломали цепочку поставок и получили 50 тысяч долларов

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

В 2021 году я только начинал свой путь в наступательной безопасности. Я уже взломал довольно много компаний и получал стабильный доход охотой за баг-баунти — практикой этичного хакинга, при которой исследователи безопасности находят уязвимости и сообщают о них, получая за это вознаграждение. Однако я ещё не достиг уровня, позволившего бы мне быстро обнаруживать критические уязвимости цели. Этот уровень умений казался мне недостижимым. Но всё поменялось, когда я познакомился с человеком, ставшим ключевой фигурой в моей карьере баг-баунти: Snorlhax.

Поначалу я видел в нём конкурента. Он был намного выше меня во французской таблице лидеров HackerOne, что стимулировало меня расти над собой. Мы начали общаться в Discord, и спустя несколько недель я рассказал ему о многообещающей программе баг-баунти. Вскоре после этого он обнаружил у этой цели критическую уязвимость, оценённую в 10000 долларов — сумму вдвое больше, чем максимальная полученная мной от этой же цели. Мотивировавшись этим, я вернулся к этой же цели и за ту же неделю нашёл собственную критическую уязвимость за 10000 долларов в другом классе багов.

Вместо того, чтобы продолжать состязаться, мы решили сотрудничать. Теперь нашей задачей стало выявление у этой цели всех возможных классов багов: IDOR, SQL-инъекций, XSS, багов OAuth, Dependency Confusion, SSRF, RCE и так далее. Все их мы нашли, сообщили компании и написали отчёты. Это сотрудничество длилось несколько лет, и даже сегодня мы время от времени снова возвращаемся к этой цели.

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

В посте я расскажу, как мы со Snorlhax наконец-то этого добились.
Читать дальше →

Отладка приложения, которое не хочет, чтобы его отлаживали

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров7.4K
Недавно я столкнулся с приложением, которое:

  1. Блокирует прикрепление к нему отладчиков.
  2. Выполняет преждевременный выход при попытках инъецирования кода.
  3. Приводит к вылету телефона целиком, если запустить её со включённым джейлбрейком (!).

По последнему пункту: кто вообще так делает???

Всё, что мы делаем (например, выполняем моддинг TikTok, чтобы он показывал только видео с котиками, или устраняем торможения в чужих приложениях), требует возможности исследования работы приложения.

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

Похоже, это приложение стало на удивление интересной комбинацией всего перечисленного.

Намного более сложной, чем можно было бы ожидать от обычного старого виджет-приложения.
Читать дальше →

Реверс-инжиниринг 128-битного дракона

Время на прочтение12 мин
Количество просмотров6.7K


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

Читать дальше →

Как создать скрипт-beautifier в Ghidra на Python?

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

Приветствую, дорогой читатель. Хочу представить вашему вниманию пример, как можно упростить себе жизнь при исследовании кода программ, используя скриптинг в Ghidra.

Если вы уже имели опыт работы с дизассемблером, то заметили, что читать его вывод не так легко, если целью является понять более высокие абстракции, заложенные в нём. Возможно, вы даже пытались декомпилировать его в псевдокод, но работать с переменными типа local_1-999 – то ещё удовольствие. Да, можно щёлкнуть на каждую из них и присвоить имя на основе логики. А что, если у вас 2000 строк и более?

Чтобы не натереть мозоль, давайте разберёмся, как написать скрипт, который сделает большую часть работы за нас.

Все манипуляции были проделаны на версии 11.1.2. Чтобы попасть в список доступных скриптов, откройте меню Window → Script Manager и там же создайте новый скрипт, нажав в правом верхнем углу кнопку Create New Script и выбрав язык Python.

Важное ограничение: Ghidra использует внутреннюю реализацию языка Python версии 2.7.

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