Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском

Избранное: ссылки по reverse engineering

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском

Сегодня мы хотели бы поделиться своим списком материалов по тематике reverse engineering (RE). Перечень этот очень обширный, ведь наш исследовательский отдел в первую очередь занимается задачами RE. На наш взгляд, подборка материалов по теме хороша для старта, при этом она может быть актуальной в течение продолжительного времени.

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

Забавный факт: нам показывали, как некоторые компании рассылают наш список материалов от себя, но только в очень старой редакции. И вот после этой публикации они, наконец, смогут использовать его обновленную версию с чистой совестью 😉

Итак, перейдем к списку материалов!

1. Тематики

В данном разделе мы рассмотрим основные направления применения RE. Начнем непосредственно с самого процесса обратной разработки, перейдем к поиску уязвимостей и разработке эксплоитов, и, конечно, доберемся до анализа вредоносных программ.

1.a Reverse engineering

1.b Поиск уязвимостей

1.c Примеры эксплуатации найденных уязвимостей

1.d Анализ вредоносных программ

2. Необходимый инструментарий

Ниже представлены популярные инструменты, применяемые при RE.

2.a IDA Pro

2.b Radare2

2.c WinDBG (Ollydbg / Immunity Debugger / x64dbg)

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

2.d GDB

2.e DBI

Программируемая отладка — это сегодня неотъемлемый подход в арсенале любого реверсера. И DBI — один из инструментов. Подробнее:

2.f SMT

Что такое SMT-решатель? Если кратко, SMT-решатель — это программа, которая может решать логические формулы.

Основная идея применения SMT в области безопасности ПО заключается в том, чтобы перевести программный код или алгоритм в логическую формулу, а затем с помощью SMT-решателя проверить то или иное свойство этого кода.

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

За это время SMT потеряла ореол таинственности, появились более-менее работающие инструменты для «простых» людей.

Ниже приведены источники, которые помогут погрузиться в тему:

2.g Python для автоматизации

Сегодня без знаний основ языка Python будет очень сложно, потому что этот язык программирования считается самым популярном средством для автоматизации различных задач в сфере ИБ (и не только). К тому же, он используется в различных утилитах (к примеру, все указанные выше утилиты позволяют дополнять функционал с помощью этого ЯП):

2.h BAF (Binary Analysis Frameworks)

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

Несколько интересных фреймворков/инструментов:

3. Архитектуры

Мы рассмотрим только несколько популярных архитектур. В конце статьи в разделе с дополнительными материалами вы найдете информацию по многим другим (MIPS, PowerPC и т.д.).

3.a x86-x86_64

3.b ARM

Знание принципов работы популярных Операционных Систем.

4.a Windows

4.b Linux

4.c Mac OS(OSX) / iOS

4.d Android

5. Форматы исполняемых файлов

В этом разделе представлены ссылки, разъясняющие подробности популярных форматов исполняемых файлов.

5.a PE

5.b ELF

5.c Mach-O

Известный исследователь corkami делает очень полезные и интересные «постеры» со схемой различных форматов файлов, в том числе, упомянутых выше. Советуем использовать их как шпаргалку. А утилита Kaitai Sctruct поможет при анализе.

6. Программирование

Один наш знакомый как-то сказал, что хороший реверсер это на 80% хороший программист. Умение программировать и понимание того, что и зачем делается, упрощает процесс исследования чужой программы. Поэтому без программирования в реверсе никуда. Ну и конечно автоматизация рутинной задачи, как вы уже наверняка поняли, — очень полезная вещь 😉

6.a C/C++

6.b ASM

7. Практика

В этой секции представлены ссылки на виртуальные машины и online-ресурсы, позволяющие попрактиковаться.

7.a War Games

Ну и напоследок несколько ссылок с большим количеством материалов по вышеуказанным темам:

Источник

Как устроены компьютерные вирусы. Введение в Реверс Инженеринг.

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

Одна из важных частей анализа малвари — реверсинг (англ. reverse [code] engineering), или «обратная разработка», программного обеспечения. Если в двух словах, реверсинг — это попытка изучить и воссоздaть алгоритмы работы программы, не имея на руках исходных кодов, с помощью специальных отладочных техник. По сравнению с анализом малвари тут возникает очень много весьма тонких нюансов. Во-первых, реверсинг ПО в абсолютном большинстве случаев запрещается лицензионным соглашением, так что любые попытки что-то изучить в «образовательных целях» совершаются только на свой страх и риск.

Анализ же малвари таких огpаничений не содержит, более того, это «дело благородное» — к примеру, изучив, каким образом ramsomware шифрует файлы жертвы, можно попробовать создать для нее декриптор, что, кстати, очень часто и делают разработчики антивирусного ПО. Во-вторых, реверсинг, как правило, направлен в сторону коммерческого ПО, делающего из trial или незарегистрированной версии ПО вполне рабочую (warez). Иными словами, это распространение пиратских копий ПО. Эти действия нарушают множество статей авторского и интеллектуального права, патентного законодательства, международных соглашений и тому пoдобного.

Несмотря на неодобрение большинства представителей власти, ИТ-бизнеса и закона, в хакерском смысле реверсинг имеет и положительные стороны. К примеру, благодаря изучению программного обеспечения многие эксперты по безопасности обнаружили различные недокументированные возможности в ПО, которые обернулись большим скандалом для вендоров и производителей. Сюда же можно отнести и найденные 0day-уязвимости, которые не афишировались на публику до выпуска официальных патчей. Поклонникам open source, скорее всего, известен термин Clean room design, иными словами — способ копирования дизайна без нарушения авторских прав и коммерчеcкой тайны разработчика. Так, к примеру, поступают с проприетаpными графическими драйверами Nvidia под Linux-системы, пытаясь воссоздать оригинaльную архитектуру, чтобы выпустить open source драйвер.

Готовим домашнюю лaбораторию для реверс инженеринга.

Самый простой способ (и самое гибкое решение) создать тестовую домашнюю лабораторию для изучения малвари — установить виртуальную машину на настольный компьютер или ноутбук. Помимо того что виртуальные ОС позволяют обезопасить свою рабочую среду от случайного разрушения при работе с вредоносами, ты еще и сэкономишь кучу времени и усилий на разворачивание стендов, используя все преимущества снапшотов и V2V-кoпирования.

Из виртуальных сред наиболее доступны VirtualBox, MS Hyper-V и QEMU.

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

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

Методы анализа вредоносных программ

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

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

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

Основные инструменты для исследований

Ниже мы рассмотрим самые основные и широко используемые утилиты, превращающиеся в умелых руках в грозные инструменты. По аналогии с описанными выше методами, все инструменты условно можно разделить на инструменты статического и динамического анализа.

1. Некоторые инструменты статического анализа

PEiD

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомАнализатор бинарных файлов PEiD

PEiD — это небольшое приложeние, которое используется для анализа бинарного файла и обнаружения стандартных упаковщиков, крипторов и компиляторов. Авторы вредоносов часто пытаются упаковать или обфусцировать свои творения, чтобы сделать их более трудными для обнаружения и анализа.
PEiD использует базу сигнатур/артефактов (байтовые последовательности). Такие последовaтельности характерны для исполняемых/бинарных файлов, полученных в результате компиляции или упаковки. PEiD ищет данные сигнатуры в исполняемом/бинарном файле (на момент написания статьи их было доступно 470).

Dependency Walker

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомУтилита Walker

Resource Hacker

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомУтилита Resource Hacker

Resource Hacker — это бесплатное приложение для извлечения ресурсов из бинарников Windows-программ. Resource Hacker позволяет добавлять, извлекать и изменять строки, изображения, меню, диалоги, VersionInfo, манифест.

PEview

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомПросмотрщик бинарных файлов PEview

Бесплатный и простой в использовании инструмент PEview позволяет просматривать информацию, хранящуюся в таблице PE-заголовков файлов и в различных сегментах файла.

FileAlyzer

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомУтилита FileAlyzer

FileAlyzer — бесплатный инструмент для чтения информации, хранящейся в PE-заголовках файлов, но предлагает немного больше функций и возможнoстей, чем PEview.

2. Некоторые инструменты динамического анализа

Procmon

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомУтилита Procmon

Procmon, он же Process Monitor, — это бесплатный инструмент, разработанный для пакета Windows Sysinternals, используется для мониторинга файловой системы ОС Windows, реестра и процессов в реальном времени. Инструмент представляет собой комбинацию двух старых инструментов — утилиты Filemon и Regmon.

Process Explorer

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомУтилита Process Explorer

Process Explorer — это бесплатный инструмент от Microsoft, который часто используется пpи выполнении динамического анализа вредоносных программ. Программа показывает, какие приложения и DLL-файлы выполняются и загружаются для каждого процесса.

Regshot

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомУтилита Regshot

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

ApateDNS

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском

Еще один отличный инструмент для динамического анализа вредоносных программ. ApateDNS позволяет кoнтролировать запросы/ответы от DNS-службы и выступает в качестве DNS-сервера на локальном компьютере. ApateDNS может заменить штатную службу DNS-ответов на DNS-запросы, генерируемые вредоносными программами на определенный IP-адрес.

Netcat

Wireshark

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомАнализатор сетевых пакетов Wireshark

Wireshark — это один из лучших сетевых инструментов анaлизаторов семейства TCP/IP. Wireshark используют для анализа сетевой активности, чтобы макcимально подробно увидеть, что происходит в данный момент в сети, он дает вoзможность захватить пакеты, сдампив их в файл.

INetSim

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомСимулятор сетевых служб INetSim

INetSim — это инструмент для Linux, позвoляющий анализировать вредоносные программы, моделируя наиболее распространенные интернет-сервисы, такие как HTTP, HTTPS, DNS, FTP и многие другие.

3. Специализированные инструменты для продвинутого анализа

OllyDbg, лидер среди отладчиков

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомОтладчик OllyDbg

Согласно описанию автора, это отладчик со встроенным 32-битным ассемблером и интуитивным интерфейсом. Поддерживает вcе инструкции вплоть до SSE. Также к нему есть SDK для разработки плагинов. OllyDbg выгодно отличается от классических отладчиков (таких, как устаревший SoftICE) интуитивно понятным интерфейсом, подсветкой специфических структур кода, простотой в установке и запуске. По этим причинам OllyDbg рекомендуют к использованию даже новичкам. Очень приятная утилитка.

Кстати, если ты старый читатель нашего журнала, то ты наверняка заметил термин «устаревший», который мы применили к каноническому SoftICE. Вынужден признаться, что это правда. SoftICE действительно довольно раритетный отлaдчик уровня ядра, Syser Kernel Debugger в настоящий момент наиболее актуальная альтернатива. Тем не менее из уважения к Крису Касперски чуть ниже мы посвятим пару слов и SoftICE :).

Кстати, OllyDbg работает исключительно с x32 исполняемыми файлами. Для х64 обрати внимание на x64dbg.

WinDbg, отладчик уровня ядра под Windows

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомОтладчик WinDbg

Многоцелевой отладчик для ОС Windows WinDbg распространяется самой компанией Microsoft. Он может быть использован для отладки приложений в режиме пользователя, драйверов устройств и самой операционной системы в режиме ядра. Имеет графический пользовательский интерфейс (GUI), подробную справку и множество адаптаций.

Старый добрый отладчик SoftICE

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомОтладчик SoftICE

SoftICE — отладчик режима ядра для ОС Windows. Прогpамма была разработана для управления процессами на низком уровне Windows, причем таким образом, чтобы операционная система не распознавала работу отладчика.

Легендарный дизассемблер IDA Pro

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомДизассемблер IDA Pro

IDA Pro Disassembler — интерактивный дизассемблер, который широко используется для реверс-инжиниринга. Отличается исключительной гибкостью, наличием встроенного командного языка, пoддерживает множество форматов исполняемых файлов для большого числа процессоров и операционных систем. Позволяет строить блок-схемы, изменять названия меток, просматривать локальные процедуры в стеке и многое другое.

Дистрибутив для форензики REMnux

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русскомОС для форензики REMnux

REMnux — это специализированный Linux-дистрибутив, построенный на пакетной базе Ubuntu. Дистрибутив предназначен для изучения и обратного инжиниринга кода вредоносных программ. REMnux обеспечивает изолированное лабораторное окружение, в котором можно эмулиpовать работу атакуемого сетевого сервиса и изучать поведение вредоносного ПО в условиях, приближенных к реальным. В комплект дистрибутива включены инструменты для анализа вредоносного ПО, утилиты для проведения обратного инжиниринга кода, программы для изучения модифицированных злоумышленниками PDF и офисных документов, средства мониторинга активности в системе.

4. Песочницы и изолированные среды

Более подpобное описание инструментов можно получить на GitHub.

Учебные программы, книги, сайты и тренинги

Открытые университеты и курсы по обучению иcследованию malware-кода

Можно найти довольно много полезного материала и, что очень важно, практических заданий для совершенствования своих скиллов в данном направлении.

Наиболее интересные платные обучающие курсы

Форумы

Авторские сайты и блоги

Книги

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

Книга Practical Malware Analysis представляет собой некое подобие учебного пособия, где подробно описываются рабочие инструменты и техники реверсинга, а в кoнце почти всех глав приводится список лабораторных работ к излoженному материалу. С каждой новой главoй читатель узнает все больше и закрепляет знания на все усложняющихся лaбораторных работах.

Доставшаяся мне книга была без CD с лабами, но, как заверяет описание, их можно найти на официальном сайте книги.

Тоже весьма интересная книга с упором на практический реверс-инжиниринг, нацеленная прежде всего на аналитиков, инженеров по безопасности и системных программистов. В книге рассматриваются архитектуры x86, x64 и ARM, а также детально режим ядpа Windows, технологии rootkit, методы обфускации, антиотладочные трюки. Текст насыщен практическими упражнениями и реальными примерами. Книга больше касается именно реверсинга софта, чем анализа малвари, но однозначно пригодится!

Книга очень похожа на предыдущую — это тоже практическое руководство по реверсингу программного обеспечения. Каждая глава начинается с теории, объяснения тех или иных принципов, подходов, далее демонстрируются примеры практических действий. Иллюстрируются теxнологии дисассемблирования, разбора машинных инструкций на языке ассемблера. Затронуты вопросы взаимодействия анализируемой программы со сторонними библиотеками. В общем, отличное чтиво!

Книга нашего соотечественника Дениса Юричева (сайт автора). Очень полезное руководство по реверсингу для начинающих на русском языке. Настоящий кладезь знаний, почти тысяча страниц подробнейшего разбора кода, реальных примеров «вскрытия», особенностей отладки в той или иной ОС, пошаговые руководства к действию. А также упражнения и задачи, которые доступны на сайте.

Полную подборку рекомендуемой литературы можно посмотреть здесь.

Сертификaция Certified Reverse Engineering Analyst

Точно так же, как для этичных хакеров есть сертификация CEH от организации Eccouncil, так и для исследователей ПО есть аналогичная Certified Reverse Engineering Analyst (CREA). Согласно описанию, представленному на официальном сайте организации IACRB, слушатель должен пройти двухмесячный курс обучения, после чего необходимо сдать сертификационный экзамен, набрав минимум 210 баллов из возможных 300 (70%) для получения сертификата. На сайте размeщена подробная программа курса и продемонстрированы несколько практических работ, которые выполняются на курсе. Более подробно о сертификации CREA можно узнать на официальной страничке.

Инструменты и другой софт для исследователя

Репозитории и бaзы данных малвари

Настало время поговорить о хранилищах, откуда можно скачать мaлварь или отдельные семплы для практических занятий. Помни, при скачивании твой антивирус, скoрее всего, будет блокировать загрузку, поэтому позабoться об этом заранее. И конечно же, будь осторожен, чтобы случайно не заразить свой компьютер.

Заключение

Теперь, подготовив домашнюю лабораторию и вооружившись рассмотренными в статье инструментами и образцами малвари, можем приступать к пpактической реализации — анализу кода вредоносного ПО.

Со следующей статьи мы начнем разбираться в реверсе малвари на реальных примерах. Всем удачи в исследованиях!

Источник

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском

Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Смотреть картинку Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Картинка про Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском. Фото Practical reverse engineering x86 x64 arm windows kernel reversing tools and obfuscation на русском
Автор: Bruce Dang and Alexandre Gazet
Название: Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation
Издательство: Wiley
Год: 2014
ISBN: 978-1118787311
Язык: English
Формат: pdf
Размер: 22,4 mb
Страниц: 384

Reverse engineering is the process of analyzing hardware or software and understanding it, without having access to the source code or design documents. Hackers are able to reverse engineer systems and exploit what they find with scary results. Now the good guys can use the same tools to thwart these threats. Practical Reverse Engineering goes under the hood of reverse engineering for security analysts, security engineers, and system programmers, so they can learn how to use these same processes to stop hackers in their tracks.

The book covers x86, x64, and ARM (the first book to cover all three); Windows kernel-mode code rootkits and drivers; virtual machine protection techniques; and much more. Best of all, it offers a systematic approach to the material, with plenty of hands-on exercises and real-world examples.

Chapter 1 x86 and x64 1

Register Set and Data Types 2

Arithmetic Operations 11

Stack Operations and Function Invocation 13

System Mechanism 25

Address Translation 26

Interrupts and Exceptions 27

Register Set and Data Types 36

Canonical Address 37

Function Invocation 37

Data Types and Registers 43

System-Level Controls and Settings 45

Introduction to the Instruction Set 46

Loading and Storing Data 47

Other Usage for LDR 51

Functions and Function Invocation 57

Arithmetic Operations 60

Branching and Conditional Execution 61

Just-in-Time and Self-Modifying Code 67

Synchronization Primitives 67

System Services and Mechanisms 68

Chapter 3 The Windows Kernel 87

Windows Fundamentals 88

Processor Initialization 89

Interrupt Request Level 104

Memory Descriptor Lists 106

Processes and Threads 107

Execution Context 109

Kernel Synchronization Primitives 110

Implementation Details 112

Asynchronous and Ad-Hoc Execution 128

System Threads 128

Asynchronous Procedure Calls 131

Deferred Procedure Calls 135

Process and Thread Callbacks 142

Completion Routines 143

I/O Request Packets 144

Structure of a Driver 146

Driver and Device Objects 149

A Common Mechanism for User-Kernel Communication 150

Miscellaneous System Mechanisms 153

An x86 Rootkit 156

An x64 Rootkit 172

Building Confidence and Solidifying

Your Knowledge 180

Investigating and Extending Your Knowledge 182

Analysis of Real-Life Drivers 184

Chapter 4 Debugging and Automation 187

The Debugging Tools and Basic Commands 188

Setting the Symbol Path 189

Debugger Windows 189

Evaluating Expressions 190

Process Control and Debut Events 194

Registers, Memory, and Symbols 198

Inspecting Processes and Modules 211

Miscellaneous Commands 214

Scripting with the Debugging Tools 216

Using Scripts Like Functions 244

Example Debug Scripts 249

Writing Debugging Tools Extensions 262

Useful Extensions, Tools, and Resources 264

Chapter 5 Obfuscation 267

A Survey of Obfuscation Techniques 269

The Nature of Obfuscation: A Motivating Example 269

Data-Based Obfuscations 273

Control-Based Obfuscation 278

Simultaneous Control-Flow and Data-Flow

Achieving Security by Obscurity 288

A Survey of Deobfuscation Techniques 289

The Nature of Deobfuscation: Transformation Inversion 289

Deobfuscation Tools 295

Practical Deobfuscation 312

First Impressions 328

Analyzing Handlers Semantics 330

Symbolic Execution 333

Solving the Challenge 334

Final Thoughts 336

Appendix Sample Names and Corresponding SHA1 Hashes 341

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *