Xl Туполевские чтения : всероссийская (с международным участием) молодежная научная конференция. Казань, 8-10 октября 2003 г., тезисы докладов. Т. 3

СЕКЦИЯ 21-22 ТЕОРЕТИЧЕСКИЕ И ПРИКЛАДНЫЕ АСПЕКТЫ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ. ЭЛЕКТРОННЫЕ СРЕДСТВА ОБУЧЕНИЯ Криптоанализ зашифрованных исполняемых файлов на основе анализа статистики машинных команд Л.Р. Абзалов Научный руководитель: И.В. Аникин, к.т.н., доцент Казанский государственный технический университет им. А.Н. Туполева Зашита ПО от отладки и дизассемблирования является достаточно важной задачей для его производителей. Одним из методов решения дан­ ной задачи является шифрование исполняемого файла. Самый очевидный и простой в реализации метод обхода этой защиты — это метод перебора ключей. (Предполагается что алгоритм шифрования известен.) Суть его заключается в следующем. Берется первый предполагаемый ключ, на нем производится рас­ шифровка исполняемого файла. После чего производится попытка запус­ тить расшифрованный файл. Если компьютер завис или ОС выдала сооб­ щение об ошибке при иполнении файла, значит ключ был неверен. В таком случае берется второй ключ, третий и так далее пока расшифрованная про­ грамма не запустится. Этот метод крайне неэффективен, так как даже при длине ключа 2 байта, процесс подбора может затянуться на несколько дней или даже недель. Возникает справедливый вопрос: а нельзя ли каким-либо образом проверять правильность ключа, не запуская файл и, как следствие, написать программу которая будет перебирать ключи без вмешательства человека? Решению этой проблемы посвящена данная работа. В криптологии существуют методы подбора ключей к зашифрован­ ным текстам основанные на анализе статистики встречаемости букв в тек­ сте. Подобным же образом можно организовать подбор ключей к зашиф­ рованным сот(ехе)-программам. Для этого нужно собрать статистику по частоте появления тех или иных машинных команд в тексте программы, а затем данную статистику можно использовать при подборе ключей. Дан­ ный метод подбора способен значительно ускорить процесс подбора. Это обусловлено тем что уже нет необходимости после каждой расшифровки пытаться запустить программу, а достаточно лишь сравнить статистику команд расшифрованной программы с эталонной. В итоге получается не­ большое количество потенциальных ключей, выбрать единственный вер­ ный из которых можно запуская расшифрованную программу. Если про­ грамма запустилась,— значит ключ верен. Была произведена классификация машинных команд по их назначе­ нию (для упрощения сбора статистики), а также написана программа соби- раюшаяя статистику частоты появления машинных команд 34

RkJQdWJsaXNoZXIy MTY0OTYy