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

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

Xakep #301

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

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

Xakep #301

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

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

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

Xakep #279

Полное G. Ломаем приложение на языке G, созданное в LabVIEW

Существуют весьма экзотичные языки программирования. Один из них — язык G, для которого компания National Instruments создала специальную среду разработки под названием LabVIEW. Тема реверса такого софта практически не раскрыта из-за узкой специализации подобных программ. Это упущение, я надеюсь, поможет исправить сегодняшняя статья.

Xakep #278

Уроки форензики. Реверсим шифровальщика

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

Xakep #278

Игривый Xamarin. Изучаем и взламываем мобильное приложение на С#

Программировать для Android можно не только на Java или Kotlin. Разработчики на С# имеют возможность создавать мобильные приложения с помощью платформы Xamarin. Сегодня мы поговорим о том, как исследовать такие приложения и как при необходимости их можно взломать.

Xakep #276

Круче кучи! Разбираем в подробностях проблемы heap allocation

Некоторые уязвимости возникают из-за ошибок с управлением памятью, выделенной на куче. Механизм эксплуатации этих уязвимостей сложнее, чем обычное переполнение на стеке, поэтому не все умеют с ними работать. Даже курс Cracking the perimeter (OSCE) не заходил дальше тривиальной перезаписи SEH. В этой статье я расскажу и на практике покажу механику работы кучи.

Xakep #276

Неядерный реактор. Взламываем протектор .NET Reactor

Для защиты приложений .NET от отладки и реверса существует множество способов (шифрование, компрессия и другие), а также специальных протекторов, таких как, например, Agile.Net и Enigma. О взломе многих из них мы уже писали. Сегодня я расскажу, как побороть еще один популярный протектор и обфускатор — .NET Reactor.

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

HTB Hancliffe. Разбираем технику Socket Reuse

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

Xakep #275

Препарируем P-Code. Как реверсить старый софт на Visual Basic

Чтобы немного разнообразить свою жизнь, сегодня мы снова займемся разборкой антиквариата. Многие уже забыли о существовании такого инструмента, как давно похороненный P-Code, в который транслировались программы на Visual Basic. Тем не менее созданные с его помощью приложения до сих пор существуют, и сегодня мы с тобой аккуратно сломаем одно из них.

Xakep #274

Фемида дремлет. Как работает обход защиты Themida

Themida или «Фемида» — одна из самых навороченных защит для софта. Вместе с WMProtect ее относят к настолько суровым протекторам, что некоторые программисты, которым жаль денег на честную покупку этих инструментов (а стоят они недешево), просто имитируют их наличие, что отпугивает ленивых и неопытных хакеров. Сегодня мы поговорим о том, как сбросить триал приложения, защищенного настоящей Themida.

«Реверс малвари» — подборка статей для будущих вирусных аналитиков

Сегодня мы публикуем новую подборку статей: «Реверс малвари». В нее вошло 28 материалов, которые проведут тебя от основ работы с отладчиком до продвинутых приемов реверса вредоносного ПО. Из нее ты узнаешь, как устроены нашумевшие вирусы вроде Carbanak и REvil. Также в рамках этого бандла впервые на сайте публикуется серия статей Криса Касперски «Энциклопедия антиотладочных приемов».

Xakep #270

HTB Schooled. Пентестим Moodle и делаем вредоносный пакет для FreeBSD

В этой статье нам предстоит пройти все ступени повышения привилегий на платформе для онлайнового обучения Moodle — вплоть до получения реверс-шелла и дампа учетных данных из базы платформы. Затем мы повысим привилегии через установку кастомного пакета FreeBSD. Проделывать все это мы будем для захвата машины Schooled с площадки Hack The Box.

Xakep #264

Препарируем TypeLibrary. Реверсим код с ActiveX и OLE Automation

Все уже привыкли, что для получения данных или выполнения каких-то действий программы могут подключать внешние динамические библиотеки (DLL). Но бывает, что программа обращается к системным службам или серверам ActiveX, что для хакера гораздо более неприятно. Самые суровые случаи отложим его на потом, сегодня начнем с вещей попроще.

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

HTB CrossFit. Раскручиваем сложную XSS, чтобы захватить хост

В этой статье на примере «безумной» по уровню сложности машины CrossFit с площадки Hack The Box я покажу, как искать XSS на недоступных страницах сайта, сканировать домены через XSS, проводить разведку на машине с Linux, удаленно исполнять код, используя FTP, и эксплуатировать инъекцию команд в пользовательском приложении. А под конец немного пореверсим, чтобы найти финальную уязвимость.

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

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

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

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

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

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