Набор статей и руководств по дизассемблеру IDA


             

ВИРУСЫ В СКРИПТАХ IDA


По мотивам "Рогов и Копыт", но с примерами вирусов для IDA PRO


Первый пик массовой вирусной эпидемии пришелся на некогда популярный компьютер "Эппл". Наиболее излюбленным объектом атаки в то время оказался загрузочный сектор гибких магнитных дисков.
Очень скоро появилось множество простых утилит, которые проверяли целостность содержимого загрузочного сектора при его запуске, а так же резидентов, которые просто блокировали запись в оный до подтверждения пользователя.
Впрочем, с массовым внедрением емких жестких дисков эта проблема и вовсе перестала существовать. Но зато появилась другая. Один винчестер (уже не защищенный от записи) хранил все исполняемые файлы пользователя и зловредной программе ничего не стоило модифицировать (то есть инфицировать) их по своему желанию.
Наиболее очевидным выходом из сложившейся ситуации стало использование операционных систем с разграничением доступа, периодическая проверка CRC исполняемых файлов, а так же создание резидентных программ блокирующим запись.
Но исполняемые файлы в отличие от загрузочного сектора, могут активно модифицироваться не только вирусом. Практически ни один ревизор не может работать на компьютере программистов. То есть людей постоянно изменяющих множество исполняемых файлов Впрочем, программисты по судьбе своей мученики и их мольбам долго никто не внимал.
Сегодня наибольшее распространение получили макро-вирусы. Это укоренившиеся, хотя неправильное название. На самом деле стоило бы их назвать скрит-вирусами, поскольку они написаны и функционируют на встроенном языке некоторого программного продукта (скрипте).
CorelDraw, PhotoShop, Quake II, Unreal вот далеко не полный перечень пакетов, поддерживающих развитые интерпретируемые (реже компилируемые) языки. Все они обеспечивают возможность функционирования и размножения вирусных и вредоносных программ (закладок и троянцев)
Вот тут-то антивирусная индустрия получила хороший щелчок. Она оказалась совсем не готова к такому развитию событий. Все средства предупреждения заболевания оказались бессильны. Ведь документ, создаваемый приложением, от записи и модификации не запретишь. То есть запретить-то, конечно, можно, и технически реализовать элементарно, но только любой пользователь отключит такую защиту - документ на то и документ, что бы с ним работать, а не смотреть "только на чтение".
По той же причине все эти вирусы отлично функционируют и на NT и даже на UNIX и Макинтош, поскольку операционной системой для них оказывается само приложение, обрабатывающие скрипты.
Любопытно, что вирусы для Quake и Unreal не детектируются абсолютно ничем. Ни AVP, ни DrWeb о них ничего не знают. Впрочем, это простительно для разработчиков. Сегодня практически каждый уважающий себя программный пакет поддерживает скриты или макрокоманды. Даже при желании уследить за всеми происходящими событиями невозможно. Совсем недавно, буквально в июле этого года появились первые вирусы и троянские дополнения к профессиональному дизассемблеру IDA PRO. В этом не было бы ничего удивительного, если бы средства языка обеспечивали бы поиск файлов для возможного инфицирования. Таковых функций IDA PRO не поддерживала, а значит, и существование вирусов (в традиционном понимании этого слова) было в ней невозможным.
Поэтому заявления, что оные все же обнаружены, встретили большой скепсис среди разработчиков антивирусного программного обеспечения. На сегодняшний день эти вирусы не детектируются ничем. Между тем, большинство пиратских копий заражено и любители нелицензионного программного обеспечения подвергают себя опасности.
На самом деле все вирусы подобного типа очень легко обнаруживаются простым визуальным просмотром скрипта. Достаточно дать себе немного труда проанализировать алгоритм работы последнего, ну и конечно, иметь представление на что обращать внимание в первую очередь.
Прежде всего все вирусы подобного типа можно разделить на две большие категории. Первые манипулируют только документами приложения и остаются исключительно в рамках виртуальной машины интерпретатора скрипта. Вторя же категория может выполнять команды процессора и операционной системы, а значит, не только инфицировать или уничтожать исполняемые файлы, но даже "покрошить" Ваш жесткий диск!
Последние опаснее, а, значит, интереснее. Вот с их рассмотрения мы и начнем. Самый простой способ вырваться из застенок виртуальной машины это воспользоваться файловым вводом \ выводом. Допустим, можно записать любую пришедшую нам на ум команду MS-DOS в файл C:\Windows\winstart.bat (ну или autoexec.bat) будучи уверенным, что рано или поздно он будет исполнен.
На языке IDA-Си это может выглядеть так.




    Содержание    Вперед