Всем привет! Сегодня мы хотели бы поделиться нашим списком материалов по теме реверс-инжиниринга (RE).
Этот список очень обширен, поскольку наш исследовательский отдел в первую очередь занимается проблемами возобновляемой энергетики.
На наш взгляд, подборка материалов по теме хороша для начала, но может быть актуальной еще долгое время.
Этот список ссылок, ресурсов и книг мы рассылаем уже около пяти лет людям, которые хотели бы попасть в наш исследовательский отдел, но еще не имеют необходимого уровня знаний или только начинают свой путь в области информационная безопасность.
Естественно, этот список, как и большинство материалов/сборников, через какое-то время потребует обновления и обновления.
Интересный факт: нам показали, как некоторые компании рассылают наш список материалов от себя, но только в очень старой редакции.
И после этой публикации они наконец-то смогут с чистой совестью пользоваться его обновленной версией ;) Итак, перейдем к списку материалов!
- Темы а.
- Инструменты
а.
ИДА Про б.
Радаре2 в.
WinDBG (Ollydbg/Immunity Debugger/x64dbg) д. Г.
Д.
Б.
е.
ДБИ ф.
СМТ г.
Python для автоматизации час BAF (структуры двоичного анализа)
- Архитектура
а.
x86-x86_64 б.
- Операционные системы
а.
Окна б.
Линукс в.
- Форматы файлов
а.
П? б.
ЭЛЬФ в.
- Программирование
а.
С/С++ б.
- Упражняться а.
1. Темы В этом разделе мы рассмотрим основные области применения RE. Начнем непосредственно с самого процесса реверс-инжиниринга, перейдем к поиску уязвимостей и разработке эксплойтов и, конечно же, перейдем к анализу вредоносного ПО.
1.a Реверс-инжиниринг
- " Искусство разборки "от Криса Касперского - не новая, но очень хорошая и до сих пор актуальная книга Криса с хорошей систематизацией знаний и отличным материалом;
- " Практическое обратное проектирование: x86, x64, ARM, ядро Windows, инструменты реверса и обфускация.
- " Реверс для начинающих "от Дениса Юрьевича - совершенно бесплатная книга, уже переведенная на многие языки мира.
Пожалуй, самое примечательное здесь наличие интересных задач после каждой главы, причем сразу для нескольких архитектур;
- " Практические советы по RE » — отличный вебинар на английском языке от Gynvael Coldwind, содержащий множество полезных советов и сценариев по RE;
- Ресурс» OPENSECURITYTRAINING.INFO "содержит хорошие образовательные лекции и видео по РИ на английском языке;
- " Копаемся в прошивке » — хорошая серия статей «Практическое обратное проектирование» — полезные статьи для тех, кто только собирается погрузиться в мир реверса прошивки устройств;
- " Обучение: безопасность встроенного ПО системы BIOS/UEFI с точки зрения атакующего и защитника » — если вы хотите окунуться в мир безопасности прошивки UEFI BIOS, то вам обязательно нужно ознакомиться с этими слайдами, которые ранее были включены в платное обучение на ведущих конференциях по безопасности;
- КРИПТО101 — небольшое введение в криптографию, без которого не обойтись.
1.б Поиск уязвимостей
- " Фаззинг: обнаружение уязвимостей методом грубой силы - хоть и не новая книга, но для понимания основ фаззинга в самый раз.
Перевод на русский язык есть, но содержит довольно забавные ошибки;
- " Автоматический поиск уязвимостей в программах без исходного кода » - хороший вводный материал на русском языке, представленный на PHDays 2011;
- " Развивающееся искусство фаззинга » — статья о развитии фаззинга;
- " Обнаружение уязвимостей современной безопасности » — компиляция разных методик поиска уязвимостей в одном документе;
- " (Состояние) Искусство войны: наступательные методы в бинарном анализе « — документ «все в одном» обо всех существующих методиках поиска уязвимостей;
- " Искусство оценки безопасности программного обеспечения: выявление и предотвращение уязвимостей программного обеспечения » — далеко не новая, но все еще актуальная книга о разных подходах к поиску уязвимостей.
1.в Примеры эксплуатации найденных уязвимостей
- " Учебники по написанию эксплойтов от команды Corelan " ( перевод ) — известная серия постов по написанию эксплойтов и шеллкодов, начиная с азов;
- " Сообщество разработчиков эксплойтов " ( частичный перевод ) — цикл статей по написанию боевого эксплойта для версий IE 10 и 11;
- " Современная бинарная эксплуатация » — материалы от команды РПИСЕК из курса обучения, который они преподавали в Политехническом институте Ренсселера;
- " Веб-архив блога компании Vupen » — канувший в Лету блог с примерами эксплуатации сложных уязвимостей в VirualBox, XEN, Firefox, IE10, Windows Kernel, Adobe Flash, Adobe Reader;
- " Проект Ноль » — блог исследовательской группы Google, где их специалисты часто делятся интересными историями об эксплуатации различных крутых уязвимостей;
- " Устранение в браузере уязвимостей, связанных с повреждением памяти «—технологии защиты, используемые в популярных браузерах:
- " SoK: Вечная война в памяти « — отличный документ, показывающий модель атаки и описывающий различные механизмы предотвращения эксплуатации на разных этапах различных типов уязвимостей, приводящих к повреждению памяти;
- " Написание эксплойтов для систем Win32 с нуля » — подробная статья по написанию эксплоита с нуля для уязвимости в программе SLMAIL;
- Фрак — известный хакерский журнал Phrack. Рекомендуем прочитать, прежде всего, статьи из категории «Искусство эксплуатации»;
- " Справочник шеллкодера: обнаружение и использование дыр в безопасности » — легендарная книга, посвященная написанию шеллкодов.
1.d Анализ вредоносного ПО
- " Практические лаборатории вредоносного ПО «—источники для книги» Практический анализ вредоносного ПО ";
- " Поваренная книга и DVD-диск для аналитика вредоносного ПО: инструменты и методы борьбы с вредоносным кодом «—мы рекомендуем эту и предыдущие книги в одном наборе тем, кто интересуется этой темой;
- " Учебные пособия по анализу вредоносных программ: подход обратного проектирования " ( перевод ) — довольно длинная серия статей, посвященная настройке среды и последующему анализу вредоносного ПО в ней;
- " Материалы курса по анализу вредоносного ПО от RPISEC » — еще один курс от RPISEC, только теперь о вредоносном ПО;
- " Компьютерные вирусы и антивирусы.
Взгляд программиста
"- хоть в книге речь идет о вредоносном ПО начиная со времен DOS, она все равно будет полезна, поскольку помимо анализа кода таких программ автор показывает примеры написания антивирусов для каждого конкретного случая.
2.А ИДА Про
- " Книга IDA Pro: неофициальное руководство по самому популярному в мире дизассемблеру » — книга, которая сделает ваше знакомство с IDA Pro легким и непринужденным :)
- " Серия видеоуроков TiGa по IDA Pro » — подборка коротких видеороликов HOW-TO по использованию IDA Pro;
- " Открытый анализ в реальном времени «— в отличие от предыдущего сборника по использованию IDA Pro, этот более новый и обновленный.
В основном он посвящен анализу вредоносного ПО.
2.б Радар2
- " Книга «Радар 2» » — основная книга по использованию фреймворка Radare2 для реверса;
- " Шпаргалка по Радаре2 " - "шпаргалка" по основным командам;
- " Radare Today - блог радара2 » — фреймворк-блог.
Он содержит не только новости, но и практические примеры.
2.c WinDBG (Ollydbg/Immunity Debugger/x64dbg)
Также не обойтись без знания принципов работы отладчика и умения его использовать.Ниже мы рассмотрим отладчики для ОС Windows, а в следующем параграфе обратим внимание на знаменитую GDB. Итак, поехали:
- Расширенная отладка Windows: разработка и администрирование надежного, надежного и безопасного программного обеспечения — в первую очередь эта книга будет полезна для понимания и «отлова» ошибок, таких как повреждение кучи;
- " Отладка внутри Windows: практическое руководство по стратегиям отладки и отслеживания в Windows «—это издание хорошо дополнит предыдущую книгу;
- «Введение во взлом с нуля с помощью OllyDbg» — к сожалению, самый старый ресурс wasm.ru закрылся, но подобную подборку легко найти, так как она продублирована на многих ресурсах.
Кроме того, в сети стали появляться «форки», только они уже используют x64dbg или IDA.
2.дГДБ
- " Полный пример отладки gdb (учебник): ncurses "—руководство по использованию GDB;
- " GEF — расширенные функции мультиархитектурной GDB для эксплуататоров и реверс-инженеров « — это надстройка для GDB на Python, добавляющая множество новых полезных команд, полезных для разработки эксплойтов;
- " Учебные пособия ГЭФ » - серия скринкастов по использованию ГЭФ.
2.е ДБИ
Программируемая отладка сегодня является неотъемлемым подходом в арсенале любого реверсера.И DBI — один из инструментов.
Более подробная информация:
- " Динамический двоичный инструментарий в информационной безопасности «—в этой статье уже собрана некоторая обобщенная информация о DBI;
- " Светлая и темная стороны инструментирования кода » — эта презентация поможет вам сориентироваться в разновидностях разного инструментирования кода и о том, что и когда может помочь вам при анализе программы.
2.f СМТ
Что такое решатель SMT? Короче говоря, решатель SMT — это программа, которая может решать логические формулы.Основная идея использования SMT в области безопасности программного обеспечения состоит в том, чтобы перевести программный код или алгоритм в логическую формулу, а затем использовать решатель SMT для проверки того или иного свойства этого кода.
Другими словами, SMT предоставляет математический аппарат для семантического анализа кода.
Решатели SMT уже довольно давно используются в нашей области.
Они хорошо зарекомендовали себя для решения следующих задач:
- поиск ошибок (статический анализ/фаззинг);
- деобфускация;
- «домашний» криптоанализ;
- символическое исполнение (как «двигатель»);
- Также были достигнуты некоторые успехи в автоматической генерации эксплойтов (например, генерация ROP).
Ниже приведены ресурсы, которые помогут вам погрузиться в тему:
- " SMT Solvers для обеспечения безопасности программного обеспечения, Шон Хилан, Рольф Роллес "является, пожалуй, первой научной работой, в которой было предложено использование SMT для решения задач в области безопасности программного обеспечения.
Дает представление о том, где и как SMT может найти свое место в этой области;
- Z3 — один из самых популярных и эффективных SMT-решателей;
- Z3 вики – репозиторий проекта;
- " Начало работы с Z3: Руководство » — онлайн-учебник, SMT-решатель для экспериментов;
- Z3Py — Обвязка Python для Z3;
- " Экспериментирование с Z3 — устранение мертвого кода ";
- " Экспериментируем с Z3 — Доказательство непрозрачных предикатов ";
- " Доказательство теорем, символическое выполнение и практический реверс-инжиниринг » — хорошая обзорная презентация, с примерами решения реальных задач и использования Z3Py;
- " Быстрое введение в решатели SAT/SMT и символьное выполнение " ( Русская версия ) — хорошая книга с интересными практическими примерами.
- " Введение в использование решателей SMT » — ознакомьтесь с материалом.
2.g Python для автоматизации
Сегодня без знания основ языка Python это будет очень сложно, ведь этот язык программирования считается самым популярным инструментом для автоматизации различных задач в области информационной безопасности (и не только).Кроме того, он используется в различных утилитах (например, все вышеперечисленные утилиты позволяют дополнить функционал с помощью этого языка):
- " Серый Шляпный Питон " ( перевод ) — отличная книга, которая расскажет вам, чем полезен Python в обратном направлении;
- " Руководство для начинающих по IDAPython » — бесплатная книга по IDAPython;
- " Арсенал Python для обратного проектирования « — это ресурс, посвященный различным утилитам и библиотекам для реверс-инжиниринга с использованием Python.
2.h BAF (Средства двоичного анализа)
Тем, кто немного более продвинут, мы рекомендуем обратить внимание на целые фреймворки, которые используют ранее упомянутые механизмы и инструменты анализа для решения более сложных задач.Итак, вот они:
- " Обзор и использование фреймворков двоичного анализа » - краткий обзор БАФ;
В конце статьи в разделе с дополнительными материалами вы найдете информацию о многих других (MIPS, PowerPC и т.д.).
3.а x86-x86_64
- " Руководства для разработчиков программного обеспечения для архитектур Intel 64 и IA-32 «—раньше такие пособия рассылались по почте, но из-за большого количества материала в них печать стала дорогим удовольствием.
Рекомендуется как настольный справочник.
3.б ARM
- Azeria Labs (Основы сборки ARM и разработка эксплойтов ARM) — сайт со статьями по основам ARM ассемблера и разработке эксплойтов для этой архитектуры;
- Хорошо " Введение в ARM » - двухдневный видеокурс, посвященный разработке и эксплуатации ARM;
- ВИЗУАЛЬНЫЙ — визуализация работы команд ARM.
4. Окна
- " Внутреннее устройство Windows » — фундаментальная книга для понимания операционной системы Windows. Следующие пункты хоть и относятся в основном к эксплуатации уязвимостей в этой ОС, но позволяют глубже понять внутренности Windows:
4.б Линукс
- " Внутренности Linux » — аналог книги «Внутренности Windows», но только для операционных систем типа Linux. Как и в случае с Windows, с разработкой эксплойтов связаны следующие темы:
4.c Mac OS(OSX)/iOS
- " Ресурсы по обратному инжинирингу Mac и iOS » — подборка материалов по этой теме.
4.д Андроид
- " Справочник Android-хакера » — вероятно, самая популярная книга по безопасности ОС Android;
- " Внутреннее устройство Android::Вид опытного пользователя » — книга о внутренних механизмах этой ОС.
Из-за недавних утечек материал оказался в открытом доступе, о чем пишет сам автор на своем сайте и предоставляет возможность скачать предыдущую версию.
5.а физкультура
- " П? секции ";
- " Заголовок PE ";
- " Формат исполняемого файла Windows. П?32 и П?64 ";
- " Компьютерные вирусы внутри и снаружи ".
5.б ЭЛЬФ
5.c Мах-О
Знаменитый исследователь Корками делает очень полезные и интересные «плакаты» со схемами файлов различных форматов, в том числе и упомянутых выше.Рекомендуем использовать их в качестве шпаргалки.
Утилита Кайтай Структ поможет с анализом.
6. Программирование Один из наших друзей как-то сказал, что хороший реверсёр — это на 80% хороший программист. Умение программировать и понимание того, что и зачем делается, упрощает процесс исследования чужой программы.
Поэтому без обратного программирования никак.
И конечно автоматизация рутинной задачи, как вы уже наверное поняли, вещь очень полезная ;)
6. Си/С++
- Современная безопасность памяти: обнаружение уязвимостей C/C++, эксплуатация, усиление защиты это отличный курс с отличными примерами.
Просто необходимый материал для каждого.
6.б АСМ
- " Ускоренный курс сборки x86 для реверс-инженеров » — «ускоренный курс» для погружения в ассемблер x86, позиционируется как специальный для RE;
- " Учебник по программированию на ассемблере » — руководство по программированию на Assemble, с возможностью запускать примеры онлайн по мере изучения;
- " Ассемблер.
2-е издание
«—рекомендуется к использованию в качестве справочника; - " Руководство по сборке x86 " — онлайн-версия.
7.а Военные игры
- SmashTheStack Wargaming Network - Эта сеть, состоящая из нескольких варгеймов, поддерживается волонтерами и доступна онлайн.
Мы рекомендуем начать с этого;
- БинТут — локальный варгейм;
- Реверсивная мастерская — мастер-класс по решению задач ежегодного конкурса «The Flare On Challenge» за 2016 год;
- Эксплойт-Вызовы — подборка уязвимых бинарных файлов ARM;
- Упражнения по обратному проектированию ARM — исходный репозиторий «исчез», но один из форков был найден на github;
- Время CTF — здесь вы можете узнать расписание будущих мероприятий CTF и прочитать решения прошлых.
- Подборка, посвященная, как правило, сфере информационной безопасности.
- Об эксплуатации уязвимостей
- О реверс-инжиниринге:
- Об эксплуатации уязвимостей в ОС Windows
- О поэтапности
- Об анализе вредоносного ПО
- И еще много разных» потрясающий "выборы.
-
Основы Записи Mid-Side
19 Oct, 24 -
Встречайте Новые Серверы Gen10V2
19 Oct, 24 -
Ремонт Китайского Фонаря Trustfire Xm-L Z5
19 Oct, 24 -
Браузер Vivaldi — Мобильная Машина
19 Oct, 24 -
Emi Отвергает Слияние Warner
19 Oct, 24 -
Российские Android-Роботы
19 Oct, 24