Средства отладки и взлома программ
Реферат, 11 Октября 2013, автор: пользователь скрыл имя
Краткое описание
В настоящее время современные хакеры используют обширный инструментарий. Его можно подразделить на следующие группы:
отладчики реального режима
отладчики V86
эмуляторы
автоматические распаковщики
дизассемблеры
прочие программы
Прикрепленные файлы: 1 файл
Средства отладки и взлома программ.doc
— 187.50 Кб (Скачать документ)Федеральное агенство по образованию
Государственное учреждение
Высшего профессионального образования
«Пятигорский государственный
Лингвистический университет»
Реферат
на тему:
«Средства отладки и взлома программ»
Выполнила:
Студентка ИИМСИКТ
группы 301 ЗИ
Образцова Елена
Руководитель:
Козлов В. И.
Пятигорск – 2013
Средства отладки и взлома программ
В настоящее время современные хакеры используют обширный инструментарий. Его можно подразделить на следующие группы:
- отладчики реального режима
- отладчики V86
- эмуляторы
- автоматические распаковщики
- дизассемблеры
- прочие программы
В свою очередь первые две группы опять разделяются на использующие стек отлаживаемой программы и неиспользующие его.
Отладчики реального режима
Наиболее известные:
- TurboDebugger
by Borland International
Созданный в 1988 году двумя братьями Chris'ом и Rich'ем Williams Содержит множество ошибок, активно используемых защитами, таких как: - использование стека отлаживаемой программы
- использование int 1, int 3 для трассировки
- перехват прерываний int 0, int 1, int 3
- некорректная работа с видеобуфером
- некорректное выставление начальных значений регистров
API отсутствует.
Обладает чрезвычайно развитым оконным
интерфейсом, предоставляет возможности
по просмотру кода и исходного текста
программы, шестнадцатеричного дампа,
переменных (при наличии отладочной информации),
созданию макросов, отличается завидной
медлительностью, связанной с подкачкой
оверлея (перекрытие программных секций).
- CodeView
by Microsoft
По своим ошибкам ничем не отличается от TurboDebugger'a. Поддерживает собственный формат отладочной информации. В силу устройства самого ядра отладчика не приспособлен в качестве среды для взлома. - AFD
Созданный в 1988 году H.Puttkamer'ом отладчик предоставляет следующие возможности: пошаговый режим исполнения инструкций, пошаговое исполнение подпрограмм, сохранение точек останова в пользовательском файле, поиск данных в памяти, создание макросов и запись их в файл. Для использования в качестве среды для взлома не предназначен. - Debug
Одним из самых первых отладчиков, существовавших для IBM PC, является отладчик DEBUG, поставляемых с операционной системой MsDos. Содержит все ошибки отладчиков реального режима. В настоящее время нигде не используется.
На сегодняшний день отладчики реального режима не представляют интереса, т.к. весь современный софт в реальном режиме не работает (работает в защищенном).
Отладчики защищенного режима
- TurboDebugger/386
by Borland International
Надстройка над TD, представляющая device-driver TDH386.Sys (низкоуровневый интерфейс сопроцессором) и запускающую программу TD386, вводящую процессор в режим V86. Полностью поддерживает ошибки своего предшественника. Предоставляет возможность установки аппаратных точек останова: по обращению на чтение/запись байта в памяти, перекрытие обращения к портам (не всегда корректно обрабатываемое). - Soft-Ice
by Nu-Mega Techologies
Hаиболее мощный отладчик. Поддержка VCPI. Есть разновидности под Win95/WinNT
Содержит также некоторые ошибки: - Hе является полностью stealth-отладчиком, так как оставляет кусок своего кода в conventional memory V86 машины.
- Существует API между программой и отладчиком
- S-Ice можно обнаружить по устройству SOFTICE1
- Загрузчик LDR неправильно выставляет значение SP
- некорректное выставление начальных значений регистров
Предоставляет API через int 3, функции 09-13h. Поддерживает отладочную информацию Microsoft ('NB' в начале отладочной информации), Borland (db 0FB52h)
- Soft-Ice/W
by Nu-Mega Techologies
Отладчик под Windows 3.xx. Обнаруживается по присутствию VxD устройства WINICE. Отслеживает конструкции вида cs:pushf. - Deglucker
by S.Gorokhov & A.Ilyushin
Ошибки: - Переключение в нестандартный видеорежим
- Hевозможность перехвата портов ввода/вывода
- запирание клавиатуры через i/o портов 60h/64h
Предоставляет API через int 15h функции 0FFxxh. Трассирует программу через DRx (аппаратные регистры останова).
Эмуляторы
- EDB by
Serge Pachkovsky
Эмулятор 80286 процессора. Крайне убогий интерфейс, на уровне DEBUG. Имеется возможность просмотра/изменения памяти, несколько режимов эмуляции. - Soft Debugger
Полноценный эмулятор 80386, без поддержки функций защищенного режима. Поддерживает отладочную информацию компиляторов Borland International. Отслеживает изменение байтов в конвейере, имеется несколько режимов эмуляции: с вызовом собственного int 1/int 3, режим Full Tracing, Auto Tracing и другие. - SD by Dmitry
Groshev
Удобный и мощный сервис. Гибкие возможности для работы с самыми разнообразными структурами данных. Может подгpyжать сеpвисные модyли.
Автоматические распаковщики
К автоматическим распаковщикам относятся программы, запускающие в автоматическом или полуавтоматическом режиме защищаемую программу и отслеживающие типовые участки startup-кода и соответственно настраивающие relocations.
Функция автоматических распаковщиков - сдирание защиты с файла и получение работоспособного EXE файла. Физика данного процесса такова: перехватывая первое программное прерывание, вызванное программой после отработки защиты, распаковщик снимает дамп памяти с уже расшифрованным кодом защищенной программы. Первый этап работы по снятию - нахождение этого самого первого прерывания. Это делается при помощи любого отладчика. Не будем вдаваться в подробности отлова первого прерывания, замечу лишь одно - все программы написанные на C/C++ и откомпилированные компилятором любой фирмы одной из первой командой проверяют версию OS:
B4 30 mov ah, 30h
CD 21 int 21h
В программах, написанных на Паскале идет перехват векторов 00 и некоторых других:
B4 35 mov ah, 35h
CD 21 int 21h
Если посмотреть ссылку на это место, то можно увидеть, что этот фрагмент вызывается после двух far call-ов:
call far Initturbo
call far SwapVectors
Таким образом можно найти истинную точку входа в паскалевскую программу.
- Autohack by BCP group
Предоставляет три варианта запуска: - Распаковка трассировкой. В данном режиме работают почти все распаковщики программ. В данном режиме возможна распаковка программ, не защищенных от трассировки. Режим работает следующим образом: программа загружается в память, перехватывается первое прерывание, возводится флажок пошаговой трассировки (поэтому распаковка в этом режиме относительно медленно работает), управление передается загруженной программе, далее обработчик первого прерывания анализирует сегмент кода трассируемой программы и ждет смены регистра CS (число смен регистра CS запрашивается во время запуска под именем "глубина трассировки"). После этого сбрасываются дампы памяти, и операция повторяется с загрузкой программы с другого начального адреса.
- Стандартный режим взлома. Режим работы программы основанный на режиме перехвата определенных моментов после отработки механизма защиты и сброса дампов памяти.
- Режим взлома с поддержкой таблиц компиляторов. Идентичен второму режиму, но нацелен на определенные компиляторы, поэтому взламывает более корректно. о если взламывается программа откомпилированная неизвестным AutoHack-у компилятором, то произойдет запуск взламываемой программы с последующими глюками.
- Intruder
by Creat0r
Отслеживает startup-код. - SnapShot by Dale Co.
- CUP by Cyberware products
- UNP by B.Castricum
- Tron
- TSUP
Дизасемблеры
Дизасемблер переводит выполняемый код в листинг на асемблере.
Прочие программы
К прочим программам
можно отнести программы
- Clipper
Valkyrie Declipper 5, Version 1.0, Revision K
"+" Есть
возможность анализиpовать
"-" Может pаботать только с известными
ему линковщиками, если линковщик ему
не известен, то он отказывается pаботать.
Hackers Declipper v1.3 by KrK //UCL
"+" Позволяет анализиpовать
низкоуpовневый код, можно
"-" Полностью pучная pабота пpи декомпиляции,
не pаспознает начала пpоцедуp, не создает
исходного текста, и т.д и т.п.
Rescue5 v1.0 CA-Clipper decompiller
"+" Декомпиляция до
исходников.
"-" Понимает очень мало линкеpов,
нет возможности анализиpовать псевдокод
- FoxPro
ReFox
Программы типа Hiew (Hacker's view by SEN), позволяющие просмотреть код, изменить его, дизасемблировать участки кода.
ОТЛАДКА СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ
Обзор
К.А. Костюхин, НИИСИ РАН
Содержание
- 1. Введение
- 1.1. Основные определения
- 1.2. Особенности отладки в системах реального времени
- 1.3. Ошибки в системах реального времени
- 2. Средства активной отладки
- 2.1. Архитектура средств активной отладки
- 2.2. Отладочные действия
- 2.3. Пользовательский интерфейс
- 2.4. Интеграция со средствами разработки ПО
- 3. Средства мониторинга
- 3.1. Архитектура средств мониторинга
- 3.2. Отладочные действия
- 3.3. Пользовательский интерфейс
- 3.4. Интеграция со средствами разработки ПО
- 4. Особенности отладки многоплатформных распределенных систем
- 4.1. Особенности архитектуры
- 4.2. Некоторые подходы к отладке распределенных приложений
- 4.3. Способы представления данных
- 5. Заключение
- Список литературы
1. Введение
1.1. Основные определения
Предметом настоящего обзора является отладка систем реального времени.
Под системой реального времени (СРВ) мы понимаем систему, в которой корректность функционирования зависит от соблюдения временных ограничений.
Существующие СРВ являются многозадачными.
Многозадачность реализуется
Под процессом понимается держатель ресурсов (например, память, данные, дескрипторы открытых файлов), которые не разделяются с другими процессами. В рамках одного процесса выполняются один или несколько потоков. Они совместно используют ресурсы процесса.
Многопроцессность в СРВ имеет существенные недостатки, поскольку требует поддержки времени выполнения для доступа к памяти, и, следовательно, при переключении контекстов системе нужно выполнить дополнительные действия.
Многопоточность - это наиболее распространенный подход при проектировании систем реального времени, при котором СРВ представляет собой один процесс, в рамках которого запущено несколько потоков.
Недостатком многопоточности является возможность модификации чужих данных какой-либо задачей (из-за отсутствия защиты). В связи с этим в СРВ представлены средства синхронизации, то есть средства, обеспечивающие задачам доступ к разделяемым ресурсам. К таким средствам относятся семафоры (бинарные и счетчики), мьютексы, очереди сообщений (см. [1],[3],[25]).
Структура СРВ приведена на рис.1, где прикладной код - это совокупность пользовательских потоков управления, ОСРВ - операционная система реального времени, обеспечивающая планирование, синхронизацию и взаимодействие пользовательских потоков управления.
Рис. 1. Структура системы реального времени
Будем называть распределенную систему распределенной системой реального времени (РСРВ), если корректность ее функционирования зависит также и от ограничений, накладываемых на время обмена между компонентами системы.
1.2. Особенности отладки в системах
реального времени
Отладка в СРВ направлена на обнаружение и исправление ошибок в прикладном коде. Она является одним из этапов кросс-разработки, схему которой можно представить следующим образом. Разработка приложения ведется как минимум на двух машинах: инструментальной и целевой. На инструментальной платформе происходит написание исходного текста, компиляция и сборка. На целевой - загрузка приложения, его тестирование и отладка.