2. Особенности ОС
• дизайн и принципы системы в целом от
Unix
• межпроцессорное взаимодействие от Mach
• Сетевой стек от BSD
Esage Lab @dukebarman
3. Mach-o формат
Сообщает ОС:
• как работает динамический загрузчик,
• как загружать разделяемые библиотеки,
• как организовать адресное пространство
процесса,
• где искать точку входа,
• и т.д.
Esage Lab @dukebarman
6. Команды загрузки
• Сообщают ядру, как загрузить различные
сегменты файла
• Описывают:
– как каждый сегмент выровнен в памяти
– какие имеет права доступа
– где располагается в памяти
Esage Lab @dukebarman
7. Сегменты и секции
• __PAGEZERO. Расположен по нулевому
виртуальному адресу и не имеет никаких защит.
Этот сегмент не имеет области в файле на диске.
• __TEXT. Содержит данные с доступом только на
чтение и исполнение.
• __DATA. Содержит данные, доступные для записи.
Эта секция отмечена как copy-on-write.
• __OBJC. Содержит данные, используемые для
Objective-C среды исполнения.
• __LINKEDIT. Содержит данные, используемые для
установки динамических связей.
Esage Lab @dukebarman
9. Динамический анализ
• fs_usage — предоставляет информацию о системных вызовах относительно
активности по отношению к файловой системе;
• heap — перечисляет все блоки памяти, выделенные в динамической памяти
отдельным процессом;
• lsof — отображает файлы, открытые в различных процессах;
• top — отображает статистику использования различных ресурсов в системе;
• vm_stat — отображает статистику использования системой виртуальной
памяти;
• gdb — отладчик, позволяет отлаживать программы удаленно;
• ddb — отладчик ядра, требует подключения через последовательный порт;
• ktrace — служит для отслеживания информации о системных событиях на
уровне ядра для указанного процесса;
• kdump — отображает информацию, сгенерированную программой ktrace;
• sc_usage — отображает статистику указанного процесса, такую как
использование процессорного времени, использование системных вызовов и
т.д.
Esage Lab @dukebarman
10. Статический анализ
• file — определяет тип файла;
• otool — служит для анализа macho-файлов;
• xxd — позволяет осуществить
преобразование бинарного файла в
шестнадцатеричное представление и
обратно;
• IDAPro — дизассемблер.
Esage Lab @dukebarman
11. Полезные ссылки
• OSX/Flashback.K sample + Mac OS malware
study set (30+ older samples)
• Исследование программ в Mac OS X
• SANS Mac OS X Malware Analysis
• Reverse Engineering Mac Defender (OS X)
malware analysis for beginners
Esage Lab @dukebarman