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