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

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

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. Сегодня мы рассмотрим способ обхода такой защиты.

Xakep #290

Препарируем Viber. Мини-гид по анализу приложений для Android

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

Xakep #289

Кряк души. Колонка главреда

Недавно я обсуждал с одним из наших авторов защиту программ. Мой собеседник (назовем его PcMedik, как он подписался под своей статьей) утверждал, что защищать нужно так, чтобы взламывать программу не имело экономического смысла. Такой довод я слышу далеко не впервые. Сначала он кажется мудрым, но чем дольше думаешь, тем больше у него находишь изъянов.

Xakep #288

Ангард! Реверсим приложение, защищенное DNGuard

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

Xakep #285

Get your Xojo. Реверсим приложение на REALbasic

Помнишь, как на школьных уроках информатики тебя заставляли изучать Basic? Так вот: это был ненастоящий Basic. А настоящий, то есть REALbasic, теперь называется Xojo, и на нем до сих пор пишут приложения. Сегодня я расскажу тебе, как они устроены изнутри и как их можно взломать.

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

Фундаментальные основы хакерства. Учимся анализировать программы для x86-64 с нуля

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

Xakep #283

Безумный Max. Как ломают плагины для 3ds Max

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

Xakep #281

Суровая жаба. Изучаем защиту Excelsior JET для программ на Java

На какие только ухищрения не приходится идти разработчикам программ на Java, чтобы усложнить взлом и реверс! Однако у всех подобных приложений есть слабое место: в определенный момент исполнения программа должна быть передана в JVM в исходных байт-кодах, дизассемблировать который очень просто. Чтобы избежать этого, некоторые программисты вовсе избавляются от JVM-байт-кода. Как хакеры обычно поступают в таких случаях? Сейчас разберемся!

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

Фундаментальные основы хакерства. Затрудняем анализ программ

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

Xakep #280

Фундаментальные основы хакерства. Находим математические операторы в дизассемблированных программах

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

Xakep #280

Фундаментальные основы хакерства. Практикуемся в поиске циклов при реверсе

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

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

25 лет «Хакеру»!

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

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

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

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