презентация - ded32.net.ru

advertisement
СИСТЕМА ПЕРЕХВАТА ВЫЗОВОВ
ФУНКЦИЙ WIN32 API
Попов Артём, лицей 1580, 11 класс
ЦЕЛЬ РАБОТЫ
Разработка программного комплекса для перехвата
API-функций и автоматизированного создания
библиотек перехвата
ЗАДАЧИ РАБОТЫ
1) Изучение методов перехвата API функций
2) Разработка оптимального метода перехвата
3) Написание вспомогательных программ для создания библиотек
перехвата
4) Создание библиотек перехвата для основных системных
модулей
СТРУКТУРА WIN32 ИСПОЛНЯЕМОГО ФАЙЛА
ИСПОЛНЯЕМЫЙ ФАЙЛ
СЕКЦИЯ ИМПОРТА
“Заглушка”(stub)
Массив с описанием
используемых dllбиблиотек
Основной PE заголовок
Дополнительный PE заголовок
Таблица секций
Секция кода .text
Секция данных .data
Секция данных .bss
Секция экспорт. функций .edata
Секция импорт. функций .idata
Другие секции
Массив с адресами
импортируемых функций
(копия 1)
Массив с адресами
импортируемых функций
(копия 2)
Массив с описанием имён
импортируемых функций
СХЕМА РАБОТЫ БИБЛИОТЕКИ ПЕРЕХВАТА
EXE файл
APISpy32
…
call MessageBoxA
…
Табл. импорта
…
USER32.DLL
_SER32.DLL
MessageBoxA
_SER32.DLL
…
int MessageBoxA (…)
Dump (…);
…
USER32:MessageBoxA(...)
USER32.DLL
…
MessageBoxA
…
До подключения перехватчика
После подключения перехватчика
ДИСК
АЛГОРИТМ РАБОТЫ ФУНКЦИИ ПЕРЕХВАТА
НАЧАЛО
Поиск в списке перехватываемых функций
Функция найдена
Нет
Да
Диск
Сохранение информации о вызванной функции
Вызов стандартной функции
Возврат управления вызывающей программе
КОНЕЦ
ПРИМЕР ОТЧЁТА БИБЛИОТЕКИ ПЕРЕХВАТА
dT
= 110 | USER32 : ShowWindow
nCmdShow : 5; );
Таймер
Функция (hWnd : 0013029A;
Параметры
dT = 110 | USER32 : GetSystemMetrics (nIndex : 49; );
dT = 120 | USER32 : GetSystemMetrics (nIndex : 50; );
dT = 140 | USER32 : CharNextW (lpsz : (0002070C) “Hell(o), Wor(l)d!”; );
dT = 150 | GDI32 : SelectObject (param0 : 7E0101C5; param1 : 01900010; );
dT = 170 | USER32 : GetWindowLongW (hWnd : 001E021C; nIndex : -20; );
модуля
dT = 170Имя
| USER32
: GetSysColor (nIndex : 5; );
СПОСОБЫ ОТОБРАЖЕНИЯ ПАРАМЕТРОВ
• Для строковых параметров записывается значение указателя и,
по возможности, сама строка
• Для любых других указателей записывается значение указателя
и сами данные, находящиеся по этому адресу
• Для всех остальных типов параметров записывается только
значение параметра
РЕЗУЛЬТАТЫ РАБОТЫ
1. Разработан программный комплекс для создания библиотек
перехвата вызовов функций из модулей OC Windows
2. Созданы библиотеки перехвата для модулей USER32
и GDI32
НАПРАВЛЕНИЯ ДАЛЬНЕЙШИХ РАЗРАБОТОК
1. Доработка алгоритма генерации библиотек перехвата до
полностью автоматизированного варианта
2. Создание библиотек перехвата для других системных модулей
3. Создание различных эмуляторов -- эмулятора реестра и
эмулятора файловой системы
Download