Автор работы: Пользователь скрыл имя, 11 Октября 2013 в 07:35, реферат
В настоящее время современные хакеры используют обширный инструментарий. Его можно подразделить на следующие группы:
отладчики реального режима
отладчики V86
эмуляторы
автоматические распаковщики
дизассемблеры
прочие программы
Федеральное агенство по образованию
Государственное учреждение
Высшего профессионального образования
«Пятигорский государственный
Лингвистический университет»
Реферат
на тему:
«Средства отладки и взлома программ»
Выполнила:
Студентка ИИМСИКТ
группы 301 ЗИ
Образцова Елена
Руководитель:
Козлов В. И.
Пятигорск – 2013
Средства отладки и взлома программ
В настоящее время современные хакеры используют обширный инструментарий. Его можно подразделить на следующие группы:
В свою очередь первые две группы опять разделяются на использующие стек отлаживаемой программы и неиспользующие его.
Наиболее известные:
API отсутствует.
Обладает чрезвычайно развитым оконным
интерфейсом, предоставляет возможности
по просмотру кода и исходного текста
программы, шестнадцатеричного дампа,
переменных (при наличии отладочной информации),
созданию макросов, отличается завидной
медлительностью, связанной с подкачкой
оверлея (перекрытие программных секций).
На сегодняшний день отладчики реального режима не представляют интереса, т.к. весь современный софт в реальном режиме не работает (работает в защищенном).
Предоставляет API через int 3, функции 09-13h. Поддерживает отладочную информацию Microsoft ('NB' в начале отладочной информации), Borland (db 0FB52h)
Предоставляет API через int 15h функции 0FFxxh. Трассирует программу через DRx (аппаратные регистры останова).
К автоматическим распаковщикам относятся программы, запускающие в автоматическом или полуавтоматическом режиме защищаемую программу и отслеживающие типовые участки 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
Таким образом можно найти истинную точку входа в паскалевскую программу.
Дизасемблер переводит выполняемый код в листинг на асемблере.
К прочим программам
можно отнести программы
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овать псевдокод
ReFox
Программы типа Hiew (Hacker's view by SEN), позволяющие просмотреть код, изменить его, дизасемблировать участки кода.
К.А. Костюхин, НИИСИ РАН
Предметом настоящего обзора является отладка систем реального времени.
Под системой реального времени (СРВ) мы понимаем систему, в которой корректность функционирования зависит от соблюдения временных ограничений.
Существующие СРВ являются многозадачными.
Многозадачность реализуется
Под процессом понимается держатель ресурсов (например, память, данные, дескрипторы открытых файлов), которые не разделяются с другими процессами. В рамках одного процесса выполняются один или несколько потоков. Они совместно используют ресурсы процесса.
Многопроцессность в СРВ имеет существенные недостатки, поскольку требует поддержки времени выполнения для доступа к памяти, и, следовательно, при переключении контекстов системе нужно выполнить дополнительные действия.
Многопоточность - это наиболее распространенный подход при проектировании систем реального времени, при котором СРВ представляет собой один процесс, в рамках которого запущено несколько потоков.
Недостатком многопоточности является возможность модификации чужих данных какой-либо задачей (из-за отсутствия защиты). В связи с этим в СРВ представлены средства синхронизации, то есть средства, обеспечивающие задачам доступ к разделяемым ресурсам. К таким средствам относятся семафоры (бинарные и счетчики), мьютексы, очереди сообщений (см. [1],[3],[25]).
Структура СРВ приведена на рис.1, где прикладной код - это совокупность пользовательских потоков управления, ОСРВ - операционная система реального времени, обеспечивающая планирование, синхронизацию и взаимодействие пользовательских потоков управления.
Будем называть распределенную систему распределенной системой реального времени (РСРВ), если корректность ее функционирования зависит также и от ограничений, накладываемых на время обмена между компонентами системы.
Отладка в СРВ направлена на обнаружение и исправление ошибок в прикладном коде. Она является одним из этапов кросс-разработки, схему которой можно представить следующим образом. Разработка приложения ведется как минимум на двух машинах: инструментальной и целевой. На инструментальной платформе происходит написание исходного текста, компиляция и сборка. На целевой - загрузка приложения, его тестирование и отладка.