1 / 13

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Цель Используемая мера: общее количество исполненных на процессоре команд • Создать инструмент для автоматической оценки эффективности реализации алгоритма

  3. Тривиальный пример измерения Добавление счетчиковв программу while (x > 0) { counter++; y = y + x; x = x / 2; }

  4. Задача • Внедрить собственные счетчики в исполняемый код, который будет анализироваться

  5. Проблема добавления собственных инструкций • Статический и динамический анализ • Проблема дизассемблирования • Из-за увеличения объема кода ломаются переходы по относительным адресам

  6. Общая схемаметода Адресное пространство процесса Исполняемый модуль Вспомогательная DLL Вызов функции subscribe_me Модифицирован Вызов системной API LoadLibrary

  7. Схема метода Адресное пространство процесса Kernel Исполняемый модуль Вспомогательная DLL Доступ запрещен Системная библиотека NTDLL subscribe_me Exception KiUserExceptionDispatcher Exception

  8. Схема генерации кода JMP +0x45 … JMP ???? ……… Jxx +0x56 … ……… Jxx ???? CALL +0x67 … PUSH JMP ???? ……… … LOOP -0x78 … LOOP +0x02 JMP JMP CALL EAX PUSH JMP EAX Без изменений JMP [EBX] RET

  9. Схема генерации кода 1: CALL RET 2: CALL JNZ RET 3: RET PUSH JMP PUSH JMP RET JNZ RET RET

  10. Ограничения наисполняемый код • Ограничениясистемы: • аппаратная платформа x86 • ОС Windows NT • PE файл (Portable Executable) • Ограничения на исполняемый код: • код скомпилирован нами; • не является самомодифицирующимся; • данные и исполняемый код хранятся в собственных секциях.

  11. Аналоги • Intel VTune • AMD CodeAnalyst • DynInst • Valgrind

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

  13. Дальнейшая работа • Исследование метода • Устранение ограничений на исполняемый код

More Related