Обновить
130.37

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

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

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

Чтобы дверью не зажало. Оживляем фотореверс из кабины лифта

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

Приветствую всех!
Замечали ли вы, что в некоторых лифтах, стоит только попасть постороннему предмету в проём, как двери немедленно открываются? Такая система, делающая поездки намного более комфортными и безопасными, есть практически в каждом современном лифте.

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

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

Modbus: как реверс-инжиниринг помог решить производственную задачу

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

Это просто история о том, как реверс-инжиниринг мне помог решить производственную задачу. Здесь не будет рекомендаций или фрагментов кода, это лишь рассказ из жизни о проблеме и решении.

2010 год: я работал на одном промышленном предприятии. За пару лет до моего прихода они закупили комплект автоматики у другого подобного предприятия. Как это часто бывает, сначала какая-то организация делает автоматику для решения своих задач, а затем, видя успешность своего решения, начинает продавать это решение себе подобным.

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

Читать далее

Реверс-инжиниринг сетевых протоколов: практическое руководство

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

Сетевой протокол — это набор правил, которые определяют принципы взаимодействия устройств в сети. Однако, на практике «идеального» соблюдения стандартов не бывает: разработчики зачастую отступают от рекомендаций. Кто-то не влезает в запланированный канал связи (например, эта проблема особенно актуальна для устройств «умного дома» без постоянного питания). Кто-то таким образом пытается скрыть информацию от злоумышленников или затруднить реверс-инжиниринг их систем (чтобы привязать пользователя к оплате лицензии). А кто-то просто считает, что может сделать лучше имеющихся аналогов. Собственный проприетарный протокол иногда даёт выигрыш по пропускной способности или задержкам, но при интеграции с другими системами и устройствами, это может создать серьёзные проблемы для сетевых инженеров. 

Представьте, что ваша система — идеально отлаженный механизм; и вдруг нужно заменить одну шестерёнку, а разработчик уволился, лицензия отозвана (бывает, что купленное вами может не принадлежать вам :), исходники потеряны или устройство пришло в негодность. В таких случаях приходится восстанавливать поведение протокола почти «с нуля».

Привет, Хабр! Меня зовут Виталий, я python-разработчик в SimbirSoft. Цель этой статьи — дать практическое введение в реверс-инжиниринг сетевого трафика и анализ протоколов передачи данных. Сразу уточню: здесь не будет взлома или обхода защиты — я уважаю интеллектуальную собственность и законодательство. Материал посвящён техническим приёмам, которые будут полезны инженерам и специалистам по интеграции систем. Статья будет полезна разработчикам, аналитикам, менеджерам, которые работают с указанными решениями.

Готовы? Поехали!

XEH — редактор с живым кодом и путешествиями во времени

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

Заметка про экспериментальный редактор кода. Создавался для исследования бинарных данных. Графический клиент, консольный интерфейс и встраиваемая библиотека.

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

Примечательные возможности: Живой кодинг. Создание контрольных точек. Отладка с перемещением во времени. Смещения, адреса и размеры в битах (да, если в байте 7 или 9 бит). Тэгирование данных.

Читать далее

Анатомия POS-терминала: от разведки на диване до обхода антивскрытия

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

Привет, Хабр! На связи Иван Глинкин, специалист по аппаратному реверс-инжинирингу из команды Бастиона. Сегодня поделюсь интересным кейсом разбора платежного POS-терминала. Когда-то эти маленькие черные коробочки были крепким орешком для хакеров. Однако отвертка, паяльный фен, логический анализатор и, конечно же, пытливый ум исследователя творят чудеса. К тому же сами разработчики и даже регуляторы порой дают в руки исследователям все козыри, будто только и ждут успешного взлома устройств. 

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

Итак, часть первая: вскрытие и разведка боем. Поехали!

Читать далее

Невидимая оборона 386: как защищены входы и выходы процессора

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

Я давно занимаюсь реверс-инжинирингом процессора Intel 386 и недавно наткнулся на любопытные схемы узлов выводов ввода/вывода (I/O). Поскольку эти выводы взаимодействуют с внешним миром, им угрожают особые опасности: статическое электричество и защёлкивание (latch-up) способны разрушить кристалл, а метастабильность — вызвать серьёзные сбои. Эти узлы ввода-вывода полностью отличаются от логических схем процессора 386, и мне попалась ранее не описанная схема триггера, так что я вступаю на неизведанную территорию. В этой статье я подробно разбираю, как именно узлы ввода-вывода защищают 386 от «драконов», способных его уничтожить.

Читать технический разбор 386

«Вика-Д3». Суровые челябинские домофоны настолько суровы…

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

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

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

Что же в этой штуке такого интересного и как она устроена? Сейчас и узнаем.

Наберите номер квартиры, ждите ответа

В помощь реверс-инженерам SNES

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

Приветствую,

Пока Хабр заполоняют новости от его "замечательной" информационной службы о выходе каждой новой версии какого-то noname софта, которым пользуется полтора, а то и даже два землекопа, я подумал: "а чем я хуже?" и решил написать о своём новом проекте - о загрузчике SNES ромов и нормальном (!) процессорном модуле WD65816 для IDA Pro. Может быть, он будет даже полезен какому-то количеству людей. Создавался проект в помощь тем, кто хотел или уже пытался реверсить SNES ромы в Иде, но у него ничего не получалось.

Хочу реверсировать SNES...

Исследование кремниевых кристаллов процессора Intel 386

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

386 — редкий случай, когда топология кристалла напрямую пересекается с историей индустрии. В этой статье разберём, как переход x86 на 32 бита и смена NMOS на CMOS отразились на самом чипе: где живут тракт данных и ПЗУ микрокода, почему shrink с 1,5 до 1,0 мкм дал ~60% экономии площади, но потребовал переложить блоки и переосмыслить разводку. Посмотрим, чем DX отличается от SX на уровне бонд-площадок и шин, и почему у 386 SL транзисторов стало втрое больше — из-за интеграции контроллеров, SMM и логики управления питанием.

Это взгляд на 80386 через микрофотографии — и на эпоху, в которой Compaq перехватил архитектурное лидерство у IBM.

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

Оптимизация декодера изображений для 6502 с 70 минут до одной

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

Когда я решил написать программу для простой цифровой фотосъёмки на Apple II, то думал использовать камеры Quicktake. Выбор казался очевидным, потому что это были камеры Apple, способный подключаться к компьютеру через последовательный порт.

Объём задачи немного расширился, когда мне удалось декодировать фотографии Quicktake 100: захотелось научиться декодировать фотографии Quicktake 150 и Quicktake 200. Из-за этого пришлось погрузиться в тему обработки изображений глубже, чем мне хотелось изначально. В этой статье я расскажу о том, как мне удалось заставить работать декодер Quicktake 150 с достаточно приемлемой скоростью на процессоре 6502 с частотой 1 МГц.

Формат Quicktake 150 проприетарный и не имеет документации, однако в проекте dcraw существуют свободные программные декодеры. Они стали моим фундаментом для создания первого декодера на Apple II. К сожалению, они написаны на C, крайне плохо задокументированы и чрезвычайно непонятны (для меня). Сжатие выполняется при помощи кода Хаффмана с переменной длиной (то есть используется битовый сдвиг), а для воссоздания изображения требуется большой объём 16-битных вычислений. Со всем этим 6502 справляется плохо.

Но для начала мне нужно было переписать исходный алгоритм так, чтобы он работал с полосами по 20 пикселей (из-за ограничений памяти). Я написал функциональный декодер, и он работал идеально, но... для декодирования одной фотографии требовалось семьдесят минут.

Читать далее

Северный «Визит». Самый красивый домофон советской эпохи

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

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

Если вы живёте в Питере или когда-либо бывали там, то вполне могли видеть этот девайс. Появившийся несколько раньше «Сезам» был самым суровым, тогда как этот по праву можно назвать самым красивым домофоном тех лет.

Изначально я думал, что ничего такого про этот экземпляр я рассказать не смогу: за неимением блока управления запустить её не получится. Однако при детальном рассмотрении оказалось, что даже сама панель заслуживает отдельного поста. Что же там такого интересного? Сейчас и узнаем.

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

Технологии утрачиваются редко

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

Несколько изобретений действительно утрачено и, в сущности, ни одного из них не жалко.  

«Στόλος Ρωμαίων πυρπολῶν τὸν τῶν ἐναντίων στόλον, «т.e. «флот ромеев сжёг вражеский флот». Так в «Хронике Иоанна Скилицы», написанной в XII веке, охарактеризовано применение византийцами греческого огня.

Читать далее

Отключаем пищалку в холодильнике

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

У меня есть холодильник с очень крутой «фичей»: он пищит, если дверца открыта дольше, чем 60 секунд. В 95% случаев это больше раздражает, чем помогает. На мой взгляд, он просто должен заткнуться и считать, что мне виднее.

Чтобы поменять его поведение, я сначала попытался добраться до пьезодинамика, чтобы вырвать его с корнем. Оказалось, что это довольно бесплодное занятие, потому что основная плата встроена глубоко в холодильник. Я не особо готов отодвигать его от стены, чтобы добраться до платы, хоть и попробовал проползти к ней через панель управления, но без особого успеха. Однако мне удалось добраться до дочерней платы, используемой в качестве панели управления холодильником.

Читать далее

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

Флиртуем с Идой. Разбираемся с технологией FLIRT в IDA Pro

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

Сегодня мы узнаем как устроены сигнатуры для FLIRT. Как создавать собственные и где искать существующие. И какие у FLIRT есть сильные и слабые стороны.

Читать далее

Истории о «partial PEM»

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

Задачка с Offzone 2025 натолкнула на мысль составить свой маленький букет «этюдов» на тему «partial PEM private key» (закрытый ключ с неполной информацией в формате PEM-файла). Будем рассматривать CTF-задачки по восстановлению закрытых ключей популярной криптосистемы RSA.

Читать далее

Запускаю Doom на домофоне через уязвимость

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

Привет! Меня зовут Владимир, и я работаю реверс-инженером в BI.ZONE Hardware Lab или просто — в «Лабе». Когда в моём подъезде появился продвинутый видеодомофон, я не удержался и разобрал его. Внутри оказалось не только любопытное устройство, но и уязвимость, позволяющая получить полный контроль над ним. В этой статье — история о том, как я искал ответ на вопрос «могут ли меня подслушивать?», взломал механизм обновления и в итоге... запустил на домофоне DOOM II.

Читать далее

Как я обнаружил в ноутбуке Dell Inspiron баг ACPI, одолевавший меня восемь лет

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

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

В течение восьми лет такой была реальность моего взаимодействия с Dell Inspiron 5567. Этот необъяснимый баг возникал в каждой установленной ОС. В статье я расскажу историю о том, как погрузился в исходный код прошивки и обнаружил единственную команду-виновницу.

Читать далее

Прячемся в «пещере кода»

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

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

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

Читать далее

Новая атака с использованием бэкдора PhantomRShell

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

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

Хакеры использовали сложную схему сокрытия вредоносной нагрузки в архивах-полиглотах. Полиглоты — это файлы, которые могут быть валидны с точки зрения спецификации нескольких форматов. Сама вредоносная нагрузка является новой обфусцированной вариацией инструмента PhantomRShell, который использует группировка PhantomCore (ранее мы писали про нее в блоге).

В этой статье мы расскажем подробности атаки, ее возможный исходный вектор и дадим рекомендации по защите почтовой инфраструктуры от взлома и подобных атак. Интересно? Добро пожаловать под кат!

Читать далее

Я хотел пошпионить за своим псом, а в результате проследил за TP-Link

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

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

И что в результате? Я выполнил реверс-инжиниринг потоков онбординга, декомпилировал APK, занимался MITM TLS-сессий и писал криптографические скрипты.

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

Читать далее

Вклад авторов