Курсовая работа

13
Курсовая работа Булычев И. Д. 445 группа Научный руководитель: М. В. Баклановский Тема: Разработка метода сбора информации о ходе исполнения программы, который использует возможность модификации памяти процесса

Upload: wade-mcintosh

Post on 31-Dec-2015

71 views

Category:

Documents


14 download

DESCRIPTION

Курсовая работа. Тема : Разработка метода сбора информации о ходе исполнения программы, который использует возможность модификации памяти процесса. Булычев И. Д. 445 группа Научный руководитель : М. В. Баклановский. Цель. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Курсовая работа

Курсовая работа

Булычев И. Д.445 группаНаучный руководитель:М. В. Баклановский

Тема: Разработка метода сбора информации о ходе исполнения программы, который использует возможность модификации

памяти процесса

Page 2: Курсовая работа

Цель

Создать инструмент для автоматической оценки эффективности реализации алгоритма

Используемая мера: общее количество исполненных на процессоре команд

Page 3: Курсовая работа

Тривиальный пример измерения

Добавление счетчиков в программу

while (x > 0) {

counter++;

y = y + x;

x = x / 2;

}

Page 4: Курсовая работа

ЗадачаЗадача

Внедрить собственные счетчики в

исполняемый код, который будет

анализироваться

Page 5: Курсовая работа

Проблема добавления собственных инструкций

Статический и динамический анализ

Проблема дизассемблирования

Из-за увеличения объема кода ломаются переходы

по относительным адресам

Page 6: Курсовая работа

Адресное пространство процесса

Исполняемый модуль Вспомогатель

ная DLL

Вызов системной APILoadLibrary

Модифицирован

Вызов функции

subscribe_me

Общая схема метода

Page 7: Курсовая работа

Адресное пространство процесса

Исполняемый модуль

Вспомогательная DLL

Системная библиотека

NTDLLKiUserExceptionDispatc

her

Kernelsubscribe_me

ExceptionException

Доступ запрещен

Схема метода

Page 8: Курсовая работа

Схема генерации кода

JMP +0x45 …

Jxx +0x56 …

CALL +0x67 …

… LOOP -0x78

JMP ???? ………

Jxx ????………

JMP ???? ………PUSH

… LOOP +0x02 JMP JMP

CALL EAX

RETJMP [EBX] Без изменений

JMP EAXPUSH

Page 9: Курсовая работа

CALL RET

CALL JNZ RET

RET

PUSH JMP PUSH JMP RET

JNZ RET RET

Схема генерации кода

1:

2:

3:

Page 10: Курсовая работа

Ограничения наОграничения на исполняемый кодисполняемый код

Ограничения на исполняемый код:o код скомпилирован нами;o не является самомодифицирующимся;o данные и исполняемый код хранятся в собственных секциях.

PE файл (Portable Executable)

Ограничения системы:o аппаратная платформа x86o ОС Windows NT

Page 11: Курсовая работа

Аналоги

Intel VTune AMD CodeAnalyst DynInst Valgrind

Page 12: Курсовая работа

Итоги

Разработан метод динамического анализа и модификации исполняемого кода программы

Реализован один из возможных способов применения метода: внедрение счетчиков для оценки эффективности алгоритма

Page 13: Курсовая работа

Дальнейшая работа

Исследование метода Устранение ограничений на

исполняемый код