Крис Касперски
Настоящая статья – попытка систематизировать и классифицировать
существующие алгоритмы внедрения в PE32/PE64-файлы, способы визуальной
идентификации потенциально опасного кода и методы его удаления. Публикация
рассчитана на широкий круг читателей, знакомых с языком Си и имеющих опыт
системного программирования на операционных системах семейства Windows 9x и Windows
NT.
Механизмы внедрения в PE-файлы весьма разнообразны, но довольно поверхностно
описаны в доступной литературе. Имеющиеся источники либо катастрофически
неполны, либо откровенно неточны, да к тому же рассеянны по сотням различных
FAQ и tutorial. Приходится, выражаясь словами Маяковского, перелопачивать тонны
словесной руды, прежде чем обнаружится нечто полезное. Данная работа
представляет собой попытку систематизации и классификации всех известных
способов внедрения.
Статья будет интересна не только специалистам по
информационной безопасности, занимающихся идентификацей и удаленем вирусов, но
и разработчикам навесных защит конвертного типа и упаковщиков. Что касается вирусописателей.
Если человек задался целью написать вирус, то он его напишет. Публикации
подобного рода на это никак не влияют. Автор ни к чему не призывает и ни от
чего не отговаривает. Это – прерогатива карательных органов власти,
религиозных деятелей, ну и моралистов наконец. Моя же задача намного
скромнее – показать, какие пути внедрения существуют, на что обращать
внимание при поиске постороннего кода и как отремонтировать файл, угробленный
некорректным внедрением.