Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПАЗИ.docx
Скачиваний:
30
Добавлен:
05.09.2019
Размер:
1.45 Mб
Скачать

1. Нейтрализация защитных механизмов может вестись двумя основными методами – статическим и динамическим.

Статический метод анализа программ

При статическом методе защищаемая программа сначала дизассемблируется. По полученному ассемблерному коду локализуются механизмы защиты, изучается логика их работы. На сегодня наиболее распространенной программой дизассемблирования является IDA (от слов Interactive Disassembler).

Динамический метод анализа программ

При динамической нейтрализации изучение и реконструирование логики работы защитных механизмов производятся с помощью отладчиков или эмуляторов, а необходимые изменения вносятся непосредственно в код программы.

Одним из наиболее популярных отладчиков, широко используемых хакерами, является SoftIce.

2. Модели аппаратных ключей hasp hl

3. Охарактеризовать технологию защиты приложений с помощью утилиты hasp Envelope.

HASP HL Envelope создает вокруг приложения защитную оболочку. Рассматриваемый инструмент применяется для защиты исполняемых файлов и библиотек DLL. HASP HL Envelope также содержит антиотладочные и антиреинжиниринговые средства.

Применение HASP HL Envelope при создании защиты программного обеспечения позволяет создать связь между ним и аппаратным ключом HASP HL. В случае если эта связь нарушается (то есть, защищенное программное обеспечение не может получить доступа к соответствующему ключу), программа перестает работать до тех пор, пока не будет подключен нужный ключ.

При построении защиты не изменяется исходный код защищаемой программы. Работа с HASP HL Envelope осуществляется с помощью графического интерфейса, который позволяет выполнять следующие действия:

― Защищать программы.

― Задавать параметры защиты.

― Указывать Код разработчика для аутентификации наличия определенного ключа HASP HL.

― Редактировать сообщения, выводимые на экран компьютера, во время работы защищенного приложения.

В дополнение к созданию связи между защищенным приложением и аппаратным ключом, HASP HL Envelope создает вокруг указанного файла приложения многочисленные защитные слои.

Для того чтобы защитить приложение:

1 запускается утилита HASP SRM Envelope,

2 в главной вкладке Envelop вводится путь и имя защищенного приложения в поле Unprotected File

3 вводятся пароли HASP в соответствующее поле

Если разрабатывается защита с использованием FAS (Full Authorization System), то необходимо проверить номер программы и количество операций (вкладка Options)

Если используется HASP HL Time, то необходимо проверить номер программы и дату окончания действия лицензии.

4 нажать Protect и приложение запустится

Защита файлов данных

Во вкладке Envelop вводится путь, пароли и в поле Encryption Key – вводится дополнительный собственный ключ (независимый). При помощи кнопки Add в группе Data Files to Encrypt выбираются необходимые файлы. В группе Data Files to Decrypt at Run Time можно ввести маску *, txt Protect? Encrypt Selected Files.

4. Охарактеризовать основные сервисы hasp, используемые при защите программ с использованием hasp api.

HASP Login – устанавливает сеанс доступа к Компоненту и определяет контекст сессии.

hasp_login() - Устанавливает сеанс доступа к Компоненту и определяет контекст сессии.

hasp_login(hasp_feature_t feature_id, hasp_vendor_code_t vendor_code, hasp_handle_t * handle)

hasp_logout() - Закрывает сессию или контекст.

hasp_logout(hasp_hasndle_t handle)

HASP Get Info – применяется для запроса информации о системных компонентах в соответствии с заданными параметрами поиска.

hasp_get_info() - Данная функция применяется для запроса информации о системных компонентах в соответствии с заданными параметрами поиска, а также для представления этой информации в заданном формате.

hasp_get_info(char * scope, char * format, hasp_vendor_code_t vendor code, char ** info)

hasp_read() - данная функция считывает данные из памяти ключа HASP SRM.

hasp_read (hasp_handle_t handle, hasp_fileid_t fileid, hasp_size_t offset, hasp_size_t length, void * buffer)

hasp_write() - Функция hasp_write() используется для записи данных в память ключа HASP SRM.

hasp_write(hasp_handle_t handle, hasp_fileid_t fileid, hasp_size_t offset, hasp_size_t length, void * buffer)

HASP Encrypt – шифрует послание на подключенный ключ HASP 5 данные, используется совместно с сервисом HASP Decode Data, проверяет подсоединен ли ключ

hasp_encrypt() - Шифрует буфер с помощью алгоритма AES.

hasp_encrypt(hasp_handle_t handle, void * buffer, hasp_size_t length)

HASP Decrypt – дешифруем данные, посылаемые на подключенный ключ.

hasp_decrypt() - Расшифровывает данные в буфере с использованием алгоритма AES.

hasp_decrypt(hasp_handle_t handle, void * buffer, hasp_size_t length)