Рубрика «reverse engineering»

Writing a wasm loader for Ghidra. Part 1: Problem statement and setting up environment - 1

This week, evil forces (multinationals and government) all of a sudden made a gift to humanity. Microsoft had opened source code of windows calculator, while the NSA (National Security Agency) opened sources of their software reverse engineering framework. This event divided security community into two groups. The first one start doing static analysis and fuzzing of the windows calculator. Second one start playing with the new toy from the NSA. According to the feedback, it’s really amazing tool, able to compete with existing solutions, such as IDA Pro, R2 and JEB. The tool is called Ghidra and professional resources are full of impressions from security researcher. Actually, they all have a reason: not every day government organizations provide access to their internal tools. Myself as a professional reverse engineer and malware analyst couldn’t pass by as well. I decided to spend a weekend to get a first impression of the tool. I had played a bit with disassembly and decided to check extensibility. In this series of articles, I'll explain the development of Ghidra add-on, which loads custom format, used to solve CTF task. As it’s a large framework and I've chosen quite complicated task, I’ll break the article into several parts.
By the end of this part I hope to setup development environment and build minimal module, which will be able to recognize format of the WebAssembly file and will suggest the right disassembler to process it.
Читать полностью »

Реверс-инжиниринг бинарного формата на примере файлов Korg SNG. Часть 2 - 1

В прошлой статье я описал ход рассуждений при разборе неизвестного двоичного формата данных. Используя Hex-редактор Synalaze It!, я показал как можно разобрать заголовок двоичного файла и выделить основные блоки данных. Так как в случае формата SNG эти блоки образуют иерархическую структуру, мне удалось использовать рекурсию в грамматике для автоматического построения их древовидного представления в понятном человеку виде.

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

Реверс-инжиниринг бинарного формата на примере файлов Korg .SNG - 1

Мы живем в удивительное время. Вокруг нас изобилие техники: телефоны, компьютеры, умные часы и прочие гаджеты. Каждый день производители выпускают на рынок все новые и новые устройства. Большинству их них предначертана короткая и яркая (или не очень) жизнь: мощная маркетинговая компания в момент выпуска, 1-2 года полноценной поддержки производителем, а затем медленное забвение. Простые устройства могут годами работать и после окончания срока официальной поддержки. С «умными» девайсами все сложнее. Хорошо если гаджет хотя бы продолжит работу после отключения серверов/сервисов производителя. И повезет, если очередное обновление ОС, драйверов или другого ПО не прибьет совместимость.
Читать полностью »

Статический анализ «BIOS-UEFI» или как получить Dependency Graph - 1 «Я вчера закончил ковку,
Я два плана залудил…»
… V.S. Vysotsky song...

Уже почти 3 года назад (в начале 2016) в issue проекта UEFITool на GitHub появилось пожелание пользователей: построить «Dependency Graph» для исполняемых модулей, входящих в BIOS/UEFI.

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

И остался этот вопрос в подвешенном состоянии, с перспективой реализации в неопределённом будущем (но желание, наверное, осталось, а надежда, как известно, умирает последней!).

Есть предложение: отыскать, наконец, решение этой проблемы!
Читать полностью »

Иногда мне бывает скучно и я, вооружившись отладчиком, начинаю копаться в разных программах. В этот раз мой выбор пал на Excel и было желание разобраться как он оперирует высотами рядов, в чём хранит, как считает высоту диапазона ячеек и т.д. Разбирал я Excel 2010 (excel.exe, 32bit, version 14.0.4756.1000, SHA1 a805cf60a5542f21001b0ea5d142d1cd0ee00b28).

Читать полностью »

Модернизация IDA Pro. Отладчик для Sega Mega Drive (часть 2) - 1

Привет всем,

В предыдущей статье мы успешно модифицировали ядро эмулятора игр на Sega Mega Drive / Genesis, добавив в него возможность отладки. Теперь пришёл черёд написания собственно плагина-отладчика для IDA Pro, версия 7.0. Приступим.Читать полностью »

Модернизация IDA Pro. Отладчик для Sega Mega Drive (часть 1) - 1

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

Товарищи реверсеры, ромхакеры: в основном эта статья будет посвящена вам. В ней я расскажу вам, как написать свой плагин-отладчик для IDA Pro. Да, уже была первая попытка начать рассказ, но, с тех пор много воды утекло, многие принципы пересмотрены. В общем, погнали!Читать полностью »

Сегодня мы расскажем вам о новом подходе к рассылке ВПО группировкой Buhtrap.

Новый загрузчик Buhtrap - 1

Модуль загрузчика

19 декабря нам стало известно о вредоносной рассылке, содержащей исполняемый файл (md5: faf833a1456e1bb85117d95c23892368). Файл принимал различные названия: «Сверка за декабрь.exe», «Док-ты среда.exe», «Документы 19.12.exe», «Закрывающие документы среда.exe».

Из интересного — файл написан на .Net, что не характерно для этой преступной группировки. Для декомпиляции .Net можно взять любое ПО: Reflector, dotPeek, dnSpy, ILSpy. В статье мы расскажем об особенностях реализации данного файла и о том, как мы его анализировали.
Читать полностью »

В один прекрасный день разные каналы в телеграмме начали кидать ссылку на крэкмишку от ЛК, Успешно выполнившие задание будут приглашены на собеседование!. После такого громкого заявления мне стало интересно, насколько сложным будет реверс. О том, как я решал этот таск можно почитать под катом (много картинок).
Читать полностью »

Топ-10 докладов Mobius 2018 Piter - 1

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

Она составлена по оценкам зрителей, так что мы никак не влияли, но при этом сам собой возник баланс платформ: четыре доклада по Android, четыре по iOS, и два применимых для любой платформы. А темы докладов совсем разные, от нюансов ARKit и JobScheduler до реверс-инжиниринга и подхода к релизам — найти что-то для себя смогут самые разные разработчики.

Доклады в списке расположены по возрастанию рейтинга — так что чем дальше, тем интереснее!
Читать полностью »