Временная скидка 60% на годовую подписку!
Главная Реверс-инжиниринг

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

Xakep #314
ВзломХардкор

Modologic. Декомпилируем проприетарный ассемблер в си-код

Это рассказ о том, как я сделал декомпилятор вроде Hex-Rays для экзотического языка программирования, используемого для скриптов игры «Мор (Утопия)». Ты узнаешь, как работает кросс‑компиляция, и получишь необходимый теоретический минимум из теории компиляции, который поможет тебе сделать так же.

Xakep #314

В кроличьей норе. Штурмуем отладочную консоль «Яндекс Станции»

Эта статья появилась в процессе реверса прошивок «Яндекс Станций». Я провел реверс U-Boot процессора умной колонки и создал утилиту для его извлечения из расшифрованного загрузчика. Способ универсален для всех подобных устройств и, возможно, других гаджетов с чипом Amlogic.

Xakep #313

Реверс по-французски. Изучаем приложение, написанное на WLanguage в среде WinDev

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

Xakep #313

Мод (Утопия). Разбираем по винтикам виртуальную машину Pathologic

Много лет назад я пытался узнать, как работает игра «Мор. Утопия» на самом деле. Но тогда формат ее скриптов оказался мне не по зубам. Сегодня мы вскроем движок игры, чтобы узнать, как работают скрипты. И даже напишем собственный декомпилятор для неизвестного языка программирования!

Xakep #313

На радаре — Cutter. Исследуем программы в графической надстройке Cutter для Radare2

Дизассемблирование и отладка программ — весьма непростой и трудоемкий процесс, а значит, заниматься этим нужно с комфортом. Этот самый комфорт вместе с удобным интерфейсом и предлагает специальная надстройка для Radare2 под названием Cutter. Как она работает? Сейчас разберем на простых примерах.

Xakep #312
ВзломХардкор

Шпион среди пингвинов. Пишем собственный руткит для Linux

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

Xakep #312

Зелье для Zelix. Изучаем обфускатор для Java и придумываем собственный деобфускатор

Сегодня мы продолжим знакомиться с обфускаторами, принципами их анализа и борьбы с ними. Наш пациент — обфускатор для Java под названием Zelix KlassMaster, внутреннее устройство которого мы подробно исследуем.

Xakep #311

Злостная эксплуатация. Используем Angr, чтобы найти Buffer Overflow

Символический эмулятор Angr поможет перехватить управление в чужом коде, достаточно лишь указать ему направление поиска. В этой статье узнаем, как с его помощью находить аналогичные дыры в приложениях, напишем анализатор inline-функций и создадим рабочий эксплоит для настоящего FTP-сервера.

Xakep #311

Темные игры. Потрошим древнюю игру на DarkBASIC

Любишь ли ты винтажные игры? Я — очень, поэтому сегодня мы про них и поговорим. Вернее, не про сами игры, а про внутреннее устройство таких программ, созданных с использованием древней темной магии технологии DarkBASIC.

Xakep #310

Руби RBE! Изучаем защиту плагинов SketchUр, написанных на Ruby

Скриптовый язык Ruby используется для написания плагинов во многих прикладных программах. Одна из них — 3D-редактор SketchUp. Сегодня мы изучим внутренности таких расширений, зашифрованных с использованием технологии RBE, и напишем свой конвертер из формата RBE в RB.

Xakep #309

Накось макось. Разбираем приложение для Mac OS 9, чтобы дать ему вторую жизнь

Тебе, вероятно, уже надоело читать статьи о программах для Windows? Попробуем исправить эту несправедливость и вспомним про Apple Macintosh. Тот самый, винтажный, на процессоре PowerPC. Сегодня мы будем препарировать написанное под эту древнюю технику приложение, чтобы дать ему вторую жизнь.

Xakep #309

Руби наотмашь. Исследуем архитектуру приложения на Ruby и учимся его реверсить

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

Xakep #308

Отлом байды. Как устроена защита Android-приложений Baidu

Бытует мнение, что защитные механизмы для Android-приложений слабы и легко обходятся, однако реальность оказывается гораздо сложнее. На рынке существует множество коммерческих протекторов, способных защитить код от взлома, и Baidu — один из них. Давай подробно разберем внутреннюю архитектуру и устройство этого навороченного мобильного протектора.

Xakep #307

Управление гневом. Изучаем Angr — фреймворк символической эмуляции

Angr — эмулятор на стероидах. Он кросс‑платформенный и поддерживает большинство популярных архитектур: с ним на Linux можно искать уязвимости в PE32, а на Windows — ковырять прошивки роутеров. В этой статье я на примере работы в Linux покажу, как его использовать.

Xakep #305

Булавкой по мозгам. Анализируем динамический код при помощи Intel Pin

Pin — это утилита для динамической бинарной инструментации (DBI). Она на лету перекомпилирует байт‑код в момент исполнения и как бы держит программу в прозрачной виртуальной машине, работающей после первоначальной загрузки с минимальными потерями скорости. Pin позволяет заглянуть внутрь работающего кода или изменить его поведение. Сегодня мы познакомимся с возможностями этого фреймворка.

Xakep #305

Radare2. Вскрываем и изменяем исполняемые файлы при помощи опенсорсного фреймворка

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

Xakep #305

Уроки форензики. Изучаем поведение стилера при помощи INetSim и IDA Pro

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

Xakep #304
ВзломДля начинающих

Radare2 с самого начала. Учимся использовать опенсорсный фреймворк для анализа приложений в Linux

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

Xakep #304

Золотой ключик. Разбираем на примере принцип создания кейгенов

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

Xakep #303
ВзломДля начинающих

Файловый титбит. Учимся менять ресурсы игр на примере «Ядерного титбита»

Можно ли модифицировать любимую игру без дизассемблера? Запросто. Тебе понадобятся лишь HEX-редактор и несколько хитрых приемов, которыми я поделюсь в этой статье. Мы рассмотрим, как легко ломаются неизвестные форматы файлов на примере всемирно признанного шедевра — игры «Ядерный титбит».

Xakep #302

HTB Ouija. Повышаем привилегии через бинарную уязвимость целочисленного переполнения

Самой интересной частью этого райтапа будет повышение привилегий в Linux через модуль PHP — мы проэксплуатируем бинарную уязвимость целочисленного переполнения в нем. На пути к этому используем баг HTTP request smuggling в Haproxy и через LFI прочитаем SSH-ключ пользователя.

Для подписчиков

HTB Napper. Реверсим приложение на Go и пишем декриптор при помощи ChatGPT

В этом райтапе мы с тобой повысим привилегии в Windows через вскрытое нами приложение на Go. Для этого разберемся с шифрованием, а затем напишем декриптор при помощи ChatGPT. Также на нашем пути встретится бэкдор Naplistener, который мы используем для проникновения в систему.

Xakep #302

Нетипичная змея. Реверсим приложение на Python c кастомным интерпретатором

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

Xakep #302

Agent Tesla. Учимся реверсить боевую малварь в Ghidra

Недавно мне попался интересный экземпляр малвари под названием Agent Tesla. Он распространен и используется по сей день (семпл 2023 года). Предлагаю попробовать исследовать его и посмотреть, что внутри у боевой малвари.

Xakep #301

Липовый соникс. Реверсим картридж Liposonix и пишем его эмулятор

В этой статье я расскажу, как происходит реверс‑инжиниринг реального медицинского оборудования. На примере картриджа для аппарата Liposonix мы разберем базовые приемы обратной разработки протоколов цифровых устройств и посмотрим, как можно подделать передаваемые данные. Оказалось, что имитировать оригинальный картридж можно при помощи МК ATmega.

Для подписчиков

Гид по реверсу. Тренируемся анализировать бинарные файлы на примере libexif

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

Xakep #301

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

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

Xakep #299

Под капотом у PassMark. Исследуем популярный бенчмарк и пишем свои тесты

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

Xakep #298

HTB Zipping. Используем инъекцию нулевого байта в ZIP-архиве, чтобы загрузить шелл

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

Xakep #297

Кабинетный хак. Патчим инсталляторы MSI, содержащие CAB-архивы

MSI — самый популярный формат инсталляторов. Для редактирования таких установочных пакетов придумано много удобных инструментов, но они могут не сработать, если инсталлятор содержит набор CAB-архивов. Сегодня я расскажу, как править данные внутри инсталляционных пакетов MSI в ручном режиме, если другими способами сделать это не получается.

Xakep #297

Приключения «Электрона». Отлаживаем JSC-код любой версии Electron без декомпилятора

Когда‑то компания Positive Technology разработала собственный плагин для декомпилятора Ghidra, позволяющий исследовать веб‑приложения на Electron, в которых используется скомпилированный бинарный код V8 JSC. C тех пор сменилось много версий Node.js, формат кардинально поменялся, в результате существующие перестали работать. В этой статье я покажу, как самостоятельно без декомпилятора отлаживать бинарный JS-байт‑код произвольной версии.

Для подписчиков

WiX-фикс. Исследуем инсталлятор Windows Installer XML Toolset

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

Xakep #295

Железный бряк. Используем хардверные брейк-пойнты в пентестерских целях

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

Xakep #294

В гостях у Инны. Ломаем инсталлятор InnoSetup

Если установка программы протекает совсем не так, как хочется пользователю, приходится вмешиваться в работу инсталлятора. Сегодня мы поговорим о том, как устроен инсталляционный пакет InnoSetup, и научимся менять его логику изнутри.

Xakep #294

Гибридная змея. Реверсим приложение на Cython

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

Xakep #293

Змеиная анатомия. Вскрываем и потрошим PyInstaller

Человечество породило целый зоопарк скриптовых языков с низким порогом вхождения в попытке облегчить всем желающим «вкатывание в айти» сразу после окончания месячных курсов. Есть мнение, что в этом зоопарке царем зверей сейчас работает Python. Эта ползучая рептилия так сильно опутала своими кольцами IT, что даже нейросеть без ее участия теперь ничему не обучить. А раз так, настало время препарировать этого аспида и посмотреть, что у него внутри. Начнем с технологии под названием PyInstaller.

Xakep #291

В обход стражи. Как вскрывают приложения, защищенные аппаратным ключом Sentinel

Реверс-инжиниринг написанных на Java приложений, если разработчики не позаботились заранее об их защите, обычно не представляет трудностей. Именно чтобы усложнить жизнь хакерам и исследователям, используются различные инструменты, один из которых — защита с аппаратным ключом Sentinel. Сегодня мы рассмотрим способ обхода такой защиты.

Страница 1 из 3123
Hello Cloud

Бумажный спецвыпуск

BEKON 2025

Еженедельный дайджест

Спасибо за подписку! Мы будем присылать важные новости ИБ в еженедельном дайджесте
Ошибка при подписке Случилась ошибка при создании подписки на наш дайджест. Пожалуйста, попробуйте позднее
Важные события и скидка на подписку:
«ХАКЕР» ДОСТУПЕН ТОЛЬКО В ЭЛЕКТРОННОЙ ВЕРСИИ
Оформи подписку — получи:
  • доступ к платным материалам сайта
  • доступ ко всем номерам PDF
4000 р.
на год
450 р.
на месяц

«Хакер» в соцсетях

Материалы для подписчиков