2015_лекции / Лекция №5_2015
.pdfФедеральное агентство по образованию
Санкт-Петербургский Государственный Электротехнический Университет «ЛЭТИ»
Вредоносные Windows программы. Стратегии размещения в памяти
Анализ вредоносных Windows
программ
Базовые концепты ОС Windows
Windows API
Реестр
Службы Windows
API сетевого взаимодействия
Мьютексы
Процессы, потоки
Обработка исключений
Native API
Windows API
Работа с файлами
CreateFile |
используется для создания и открытия файлов, может |
|
открывать существующие файлы, устройства ввода/вывода, |
|
потоки, и создавать новые файлы (задаетcя с помощью |
|
параметра dwCreationDisposition). |
|
|
ReadFile, WriteFile |
используются для чтения и записи данных в файл. |
|
|
CreateFileMapping , |
используются для загрузки файла в память и манипуляции с |
MapViewOfFile |
его содержимым. Первая функция осуществляет загрузку |
|
файла в память. Вторая функция возвращает указатель на |
|
адрес базы, по которому загружен файл. Функции часто |
|
используются вредоносным ПО для модификации заголовка |
|
PE файла. |
|
|
Windows API
Специальные файлы
Сетевые (общие) файлы
Файлы, доступ к которым реализуется через
Namespaces.
Альтернативные потоки данных
Windows API
Сетевые (общие) файлы
\\ИмяСерверногоКомпьютера\ИмяРесурса
Префикс \\?\
Windows API
Файлы, доступ к которым реализуется через Namespaces.
Namespace = фиксированное число папок, хранящих различные типы объектов.
\Device\ PhysicalDisk1 – обращение к жесткому диску.
\Device\PhysicalMemory – доступ к физической памяти
Утилита WinObj Object Manager
Windows API
Альтернативные потоки данных
Суть технологии: у файла на NTFS может быть несколько потоков, содержащих данные.
normalFile.txt:Stream:$DATA
Утилиты NTFS Stream Explorer или Streams (SysInternals)
Пример
Создание файла с потоком: type nul > file.txt:Stream
Запись в поток: echo “Top secret” >> file.txt:Stream
Чтение из потока: more < file.txt:Stream
Реестр
иерархическая структуру поддеревьев, разделов, подразделов и параметров.
пять корневых поддеревьев
два поддерева реестра: HKEY_LOCAL_MACHINE и HKEY_USERS
три являются псевдонимами других частей реестра
просмотр содержимого реестра – программа
Registry Editor (Regedit)
Реестр
Имя корневого раздела |
Описание |
|
|
|
|
HKEY_LOCAL_MACHINE |
Сведения о локальном компьютере, включая данные об |
|
(HKLM) |
оборудовании и операционной системе, такие как тип шины, |
|
системная память, драйверы устройств и параметры |
||
|
||
|
загрузки. |
|
|
|
|
HKEY_CLASSES_ROOT |
Сведения, используемые различными технологиями OLE, и |
|
|
данные о сопоставлении типов файлов. Определенный раздел |
|
|
или параметр существуют в HKEY_CLASSES_ROOT, если |
|
|
соответствующий раздел или параметр существуют в |
|
|
HKEY_LOCAL_MACHINE\SOFTWARE\Classes или |
|
|
HKEY_CURRENT_USER\SOFTWARE\Classes. Если раздел или |
|
|
параметр имеются в обоих местах, в HKEY_CLASSES_ROOT |
|
|
появится значение из HKEY_CURRENT_USER. |
|
|
|
|
HKEY_CURRENT_USER |
Профиль пользователя, вошедшего в систему локально (в |
|
(HKCU) |
отличие от удаленного пользователя), включая переменные |
|
среды, параметры рабочего стола, сетевых подключений, |
||
|
||
|
принтеров и приложений. Это поддерево является |
|
|
псевдонимом поддерева HKEY_USERS и указывает на |
|
|
HKEY_USERS\учетный_код_текущего_пользователя. |
|
|
|
Реестр
Имя корневого раздела |
Описание |
|
|
HKEY_USERS |
Сведения о загруженных профилях пользователя и профиль, |
|
используемый по умолчанию. Сюда включены сведения, также |
|
появляющиеся в поддереве HKEY_CURRENT_USER. Удаленные |
|
пользователи не имеют профилей в этом разделе сервера; их |
|
профили находятся в реестрах собственных компьютеров. |
|
|
HKEY_CURRENT_CONFIG |
Сведения о профиле оборудования, используемом локальным |
|
компьютером при запуске системы. Эти сведения |
|
используются для настройки загружаемых |
|
драйверов и разрешения дисплея. Это поддерево |
|
является частью поддерева |
|
HKEY_LOCAL_MACHINE и соответствует |
|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS |
|
et\Hardware Profiles\Current. |
|
|