logo
622231 / 622221с / очн 622221с / ПАЗИ 622221с / КЛ_ПАЗИ

Лекция 26 Защита файлов от изменения. Защита программ от изучения. Защита от дизассемблирования. Защита от отладки. Защита от трассировки по прерываниям. Защита от исследований.

Чтобы модернизировать механическое изделие, электронное устройство или интеллектуальный продукт – программу, надо понять принцип работы, определить основные и вспомогательные части. Для программ существуют специальные инструменты, позволяющие разбирать их "до винтика". Самые универсальные называются дизассемблеры и отладчики. Первые преобразуют непонятный машинный код в удобочитаемый текст на языке низкого уровня - ассемблере. Вторые - информируют обо всех процессах, протекающих в недрах компьютера, после выполнения отдельного участка или даже каждого шага программ, то есть помогают понять суть выполняемых операций. Поэтому следующая "линия обороны" любого блока защиты проходит именно здесь.

Четкой грани между дизассемблированием и анализом полученного текста под отладчиком нет (часто эти функции совмещены в единой программе). Но приемы против каждого из них свои. Ведь противодействовать декодировке записанного на дискете файла нельзя (допустима лишь пассивная защита - запутывание алгоритма или шифрация самих кодов), зато при работе защищенных модулей на компьютере (пусть даже в пошаговом режиме отладки) активное сопротивление вполне возможно.

Искусственное усложнение исполняемого модуля затрудняет исследование алгоритмов. Надежность защиты, в данном случае, зависит от того, насколько программист отождествит себя со "взломщиком", угадает логику его мышления и представит проблемы, с которыми тот сталкивается. А для этого ему самому нужно побывать в роли хакера.