90 likes | 290 Views
Введение в исследование программ. Автор: Ханов А.Р. СПбГУ, 2012. Что такое программа?. Что такое программа?. Все что угодно: .exe .dll .pl .py .pyc .hs .pl …. Исследование программ = обратная разработка = reverse engineering
E N D
Введение в исследование программ Автор: Ханов А.Р. СПбГУ, 2012
Что такое программа? Все что угодно: .exe .dll .pl .py .pyc .hs .pl …. Исследование программ = обратная разработка = reverse engineering Цель: восстановление алгоритма, изменение работы программы Binary exploitation: поиск уязвимостей и исполнение shell-кода
Инструменты анализа • Декомпилятор (Assembler: IDA Pro, objdump, hiew; Python: unpyc,…; Java Decompiler; C# JetBrains; VB decompiler…) • Отладчик (gdb, OllyDBG, …) • Монитор (strace, procmon, filemon,…) • Вспомогательные утилиты: strings, dumpbin, PEBrowser, LordPE,…
Исполняемые файлы Файл программы Память программы Image base Секции: -код -инициализированные данные -импорт -экспорт -релокации …
Исполняемые файлы %Показать структуру исполняемого файла%
Задачи • Упаковка/распаковка • Обфускация/деобфускация • Восстановление алгоритма • Борьба с антиотладкой
Примеры 1) Упаковка easy (test_easy.exe) 2) Упаковка medium (test_medium) 3) Восстановление исходного файла 4) Раскрытие алгоритма 5) Борьба с отладкой, патчинг, самомодификация, динамическая распаковка. (crypto, 29)
Ресурсы wasm.ru – куча статей по Assembler cracklab.ru – статьи, программы crackmes.de – множество тренировочных примеров google.com – множество полезной информации по теме