API Spying
Категория реферата: Рефераты по информатике, программированию
Теги реферата: ответы на сканворды, решебник по математике 6
Добавил(а) на сайт: Lisicyn.
Предыдущая страница реферата | 5 6 7 8 9 10 11 12 13 14 15 | Следующая страница реферата
И хранением, и отображением занимается внешнее приложение, dll просто пересылает ему данные по мере поступления.
Наиболее интересен последний вариант (рассматриваем отображение в реальном времени), так как за счёт выноса части логики во внешнее приложение dll получается относительно простой, в результате чего снижается риск случайно испортить что-нибудь в исследуемом приложении, упрощается отладка и повышается надёжность системы в целом.
Реализация
Ограничимся простым случаем:
Отслеживаем только вызовы функций, адреса которых исследуемое приложение получает через GetProcAddress.
Сохраняем только имена функций и модулей.
Отображаем данные в реальном времени. В качестве GUI выступает консоль. :)
Данные хранятся и отображаются во внешнем приложении.
Генерация функции-шпиона
Основную работу по генерации выполняют следующие несложные классы:
// Класс, позволяющий работать с относительными адресами. // Позволяет копировать относительные адреса, сохраняя их корректными. struct relative_address { relative_address() : value(0) {} // Корректно копирует относительный адрес. relative_address(const relative_address& a) { // Копирование со смещением на расстояние между указателями. value = (unsigned long)a.value + (unsigned long)&a.value - (unsigned long)&value; } // Корректно присваивает относительный адрес. relative_address& operator = (const relative_address& a) Рекомендуем скачать другие рефераты по теме: конспект 5 класс, шпаргалки по физике. Предыдущая страница реферата | 5 6 7 8 9 10 11 12 13 14 15 | Следующая страница реферата Поделитесь этой записью или добавьте в закладкиКатегории: |