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

Декомпилятор rev.ng стал открытым

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

Декомпилятор rev.ng стал опенсорсным и начал закрытое бета-тестирование пользовательского интерфейса. Разработчики выпустили первоначальную документацию по использованию rev.ng.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Неделя мобильной безопасности (16-22 апреля)

Время на прочтение4 мин
Количество просмотров717

Привет, Хабр!

Так как прошлый мини-дайджест показался вам интересным, буду продолжать радовать вас новостями мобильной безопасности за прошедшую неделю. Итак, что нового произошло за прошлую неделю с 16 по 22 апреля.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Неделя мобильной безопасности (9-15 апреля)

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

Привет, Хабр!

Меня зовут Юрий Шабалин, как вы помните из предыдущих статей, я один из основателей компании Стингрей Технолоджиз, разработчика платформы анализа защищенности мобильных приложений iOS и Android.

А здесь вы найдете мини-дайджест новостей из мира мобильной безопасности, как я и обещал в статье “Подборка материалов по мобильной безопасности «Awesome Mobile Security»”. Рассказываю о том, что нового произошло, какие уязвимости были обнаружены, что нового почитать и какие новые инструменты появились (или нашлись) за прошлую неделю.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Месяц мобильной безопасности: Июнь

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

И снова, после небольшого перерыва представляю вам главные новости из мира безопасности мобильных приложений за июнь. Было много интересных материалов - давайте посмотрим на самые-самые.

Читать далее
Рейтинг0
Комментарии0

Играем в DOOM на тесте на беременность. Что? Да

Время на прочтение3 мин
Количество просмотров50K
А также на микроволновке, валидаторе билетов и многом другом.



К флэшмобу по переносу DOOM на любые устройства, у которых только есть дисплей, теперь добавился еще и тест на беременность.

Программист-энтузиаст и адепт реверс-инжиниринга Foone сумел запустить полнофункциональную игру DOOM на электронном тесте на беременность, а до этого то же самое проделал с The Elder Scrolls: Skyrim. Первое видео классического шутера на миниатюрном экране устройства было показано им на выходных в личном микроблоге в Twitter. Тогда он признался, что на самом деле просто проигрывал видео, но с тех пор поднял ставки и нашел способ действительно сыграть в DOOM на электронном тесте при помощи беспроводной клавиатуры.
Всего голосов 61: ↑43 и ↓18+35
Комментарии56

Создание исполняемого файла ELF вручную

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

Привет, класс, и добро пожаловать в x86 Masochism 101. Здесь вы узнаете, как использовать коды операций непосредственно для создания исполняемого файла, даже не касаясь компилятора, ассемблера или компоновщика. Мы будем использовать только редактор, способный изменять двоичные файлы (т.е. шестнадцатеричный редактор), и «chmod», чтобы сделать файл исполняемым.

Восход солнца вручную!
Всего голосов 19: ↑18 и ↓1+24
Комментарии6

Распаковка исполняемых файлов

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

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

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

Дизассемблируем циклы, написанные на Си

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

Доброго времени суток.

Сегодня мы будем смотреть дизассемблированный код инструкций if, for, while, swich, которые написаны на языке Си. Воспользуемся radare2.

Дизассемблировать код
Всего голосов 10: ↑9 и ↓1+8
Комментарии21

«Никаких секретов» или Frida для Windows

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

Доброго времени суток! В этой статье будет рассказано, как знание JavaScript и концепций работы современного программного обеспечения могут помочь в reverse engineering, а так же продемонстрировано, как можно использовать тулзу для динамической инструментации для анализа любого ПО на Linux, Windows, Android и iOS.

Читать далее
Всего голосов 7: ↑6 и ↓1+8
Комментарии1

Frida изучаем эксплуатацию алгоритмов Heap

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

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

Все примеры в статье будут касаться атак на кучу в операционной системе Linux, поэтому запасаемся терпением и попкорном.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Modern Reverse Engineering: TTD

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

Обратная разработка сегодня это достаточно трудоемкий процесс в первую очередь потому, что в период с 2000х по 2020 годы вышло в свет много языков программирования, которые ставили перед собой задачу стать интуитивными и простыми для изучения, безопасными и в то же время эффективными для решения поставленных задач. Что значит интуитивными и простыми? Это когда не нужно тратить время на синтаксически сложные для запоминания конструкции языка и писать чистый код, который не нужно разбирать часами, чтобы понять что он делает.

Статья расскажет о способах анализа современных языков программирования на примере Crackmes. Среди исследуемых языков: 

•   Go

•   Python

•   Rust

Опишем некоторые проблемы обратной разработки связанных с каждым из перечисленных языков программирования.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии3

Перенаправление функций в native-библиотеках на Android

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

В данной статье я немного расскажу о том, как c помощью фреймворка AndHook можно перенаправлять вызовы функций в native-библиотеках. Можно перехватывать вызовы как публичных (экспортируемых функций), так и непубличные, напрямую по их адресу. Подробнее о перенаправлении можно почитать тут, и на странице фреймворка.


В качестве примера будет рассмотрен случай с внедрением своей библиотеки. Однако данный фреймворк также позволяет работать и без пересбора приложения с помощью xposed.

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии0

Kremlin RATs: история одной мистификации

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

Этим постом мы начинаем двухсерийный технодетектив, в котором встретились "священная триада" доменов: putin, kremlin, crimea и "крысы" — программы удаленного доступа (RAT), а также шпион AgentTesla. Началась история с того, что в конце мая 2020 года сетевой граф Group-IB, наша автоматизированная система анализа инфраструктуры, начал детектировать домены с интересным паттерном *kremlin*.duckdns.org, к которым подключались различные вредоносные файлы. Аналитики Group-IB Threat Intelligence & Attribution исследовали эти домены и установили три кампании по распространению различных RAT. Они шли с 2019 года и были нацелены на пользователей из Польши, Турции, Италии, Украины, России, Казахстана, Болгарии, Беларуси, Греции и Чехии. В ходе расследования была установлена связь между обнаруженными доменами и остальной используемой инфраструктурой, а заодно и с конкретным человеком, который стоит за распространением AgentTesla и других вредоносных программ. Итак, обо всем по-порядку.

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии3

Flare-On 2019 write-up

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


-0x01 — Intro


Данная статья посвящена разбору всех заданий Flare-On 2019 — ежегодного соревнования по реверс-инжинирингу от FireEye. В данных соревнованиях я принимаю участие уже второй раз. В предыдущем году мне удалось попасть на 11-ое место по времени сдачи, решив все задачи примерно за 13 суток. В этом году набор тасков был проще, и я уложился в 54 часа, заняв при этом 3 место по времени сдачи.


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


Если вас заинтересовало, то добро пожаловать под кат!

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии4

Исполняемый обвес

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

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

Disclamer: Вся информация предоставляется исключительно для обучающих целей.

Читать далее
Всего голосов 9: ↑8 и ↓1+9
Комментарии0

Исполняемый обвес. Часть 2

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Переполнение кучи в Linux для начинающих

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

Данный туториал для начинающих, но подразумевается, что читатель уже знаком с основами работы функции malloc библиотеки glibc. Подробно рассмотрим как эксплуатировать переполнение кучи в Linux на примере 32-разрядного Raspberry PI/ARM1176.  Так же разберем некоторые нюансы эксплуатации и в x86-x64 системах. Для этого будем использовать инструменты  GDB + GEF.

Переходим сразу к уязвимому коду, который я позаимствовал из лабораторных заданий Protostar, а именно данное задание.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии3

How to Start Reverse Engineering in 2021

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

Reverse engineering might seem so complex, that not everyone has the bravery required to tackle it. But is it really that hard? Today we are gonna dive into the process of learning how to reverse engineer.

First of all, try to answer yourself, what are you hoping to achieve with reverse engineering? Because reverse engineering is a tool. And you should choose the right tool for your task. So when reverse engineering might be useful?

Read more
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Реверс-инжиниринг тетриса на Nintendo для добавления Hard Drop

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

Тетрис на Nintendo — одна из моих любимых версий тетриса. Моя единственная жалоба заключается в том, что ему не хватает возможности «Hard Drop» — мгновенного падения текущей фигуры и её фиксации на месте. Давайте её добавим

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

Читать далее
Всего голосов 13: ↑11 и ↓2+16
Комментарии5

Создаем процессорный модуль под Ghidra на примере байткода v8

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

В прошлом году наша команда столкнулась с необходимостью анализа байткода V8. Тогда еще не существовало готовых инструментов, позволявших восстановить такой код и обеспечить удобную навигацию по нему. Было принято решение попробовать написать процессорный модуль под фреймворк Ghidra. Благодаря особенностям используемого языка описания инструкций на выходе мы получили не только читаемый набор инструкций, но и C-подобный декомпилятор. Эта статья — продолжение серии материалов (1, 2) о нашем плагине для Ghidra.

Между написанием процессорного модуля и статьи прошло несколько месяцев. За это время спецификация SLEIGH не изменилась, и описанный модуль работает на версиях 9.1.2–9.2.2, которые были выпущены за последние полгода.

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

В документации можно прочесть, что процессорные модули для Ghidra пишутся на языке SLEIGH, который произошел от языка SLED (Specification Language for Encoding and Decoding) и разрабатывался целенаправленно под Ghidra. Он транслирует машинный код в p-code (промежуточный язык, используемый Ghidra для построения декомпилированного кода). Как у языка, предназначенного для описания инструкций процессора, у него достаточно много ограничений, которые, однако, можно купировать за счет механизма внедрения p-code в java-коде.

Исходный код созданного процессорного модуля представлен на github. В этой статье будут рассматриваться принципы и ключевые понятия, которые использовались при разработке процессорного модуля на чистом SLEIGH на примере некоторых инструкций. Работа с пулом констант, инъекции p-code, анализатор и загрузчик будут или были рассмотрены в других статьях. Также про анализаторы и загрузчики можно почитать в книге The Ghidra Book: The Definitive Guide.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии0