
254 Глава 14. Методы и средства разрушения информации
делировать процесс ее загрузки и выяснить адреса частей программы относительно
сегмента оперативной памяти, в которой она загружается.
Это означает, что возможно произвольное изменение кода программы и обеспечение
отклонения (как правило, негативного характера) в работе прикладной программы.
Тогда алгоритм действия закладки может быть следующим.
1. Закладка загружается в память каким-либо образом.
2. Закладка осуществляет перехват (редактирование цепочки) одного или нескольких
прерываний:
• прерывание DOS “запуск программ и загрузка оверлеев” (int 21h, функция
4Bh);
• прерывание BIOS “считать сектор” (int 13h, функция 02h);
• прерывание от системного таймера (int 08h).
3. По одному из трех событий закладка получает управление на свой код и далее вы-
полняет следующие операции:
• проверка принадлежности запущенной программы или уже работающей (для тай-
мерного прерывания) к интересующим программам;
• определение сегмента, в который загружена программа;
• запись относительно определенного сегмента загрузки некоторых значений в опе-
ративную память так, чтобы отключить схемы контроля и (или) исправить про-
грамму нужным образом.
Принципиальная возможность исправления кода следует из того, что вывод о пра-
вильности работы программы делается на основе операций сравнения в арифметико-
логическом устройстве процессора.
Сравнение результатов работы выполняется
командой CMP, а результат сравнения
изменяет один или несколько бит регистра флагов. Следовательно, того же результата
можно добиться, изменив эти биты в одной из команд работы с регистром флагов типа
CLD, CLS, LAHF и т.д.
Наконец, возможен случай, когда содержательный код программы защиты вместе со
схемой контроля будет удален
из памяти полностью и все последующие операции будут
выполнены без влияния программы защиты.
Таким образом, анализируя в данном случае действия закладки, необходимо считать
возможным любые искажения кода программ.
Основным способом активизации разрушающих закладок является запуск ассоции-
рованных с ними программ. При этом закладка получает управление первой и выполня-
ет какие-либо
действия (изменение адресов прерывания на собственные обработчики,
исправление в коде программ защиты и т.д.).
Листинг 14.3. Пример закладки, разрушающей схему контроля
{$M 1024,0,0}
{$I-}
uses