Найди врага в своем доме! Deeoni$ Спецвыпуск: Хакер, номер #048, стр. 048-074-7 Самым ярким свидетельством болезни является нестандартная точка входа. В нашем случае она будет указывать почти на самый конец последней секции (именно там живут 90% вирусов). Окончательный диагноз можно поставить, если имеется и разрешение на запись в это место, однако VX-кодеры смекнули, что это дело слишком опасное, и теперь оставляют адрес Entry point в покое, вставляя, однако, туда джамп на нехороший код. Это и есть вторая подозрительная особенность. Кстати, переход может быть совсем не на последние байты файла, но и почти в самое начало, после таблицы объектов, в случае с записью между заголовком и секциями. Многие оставляют автографы в неиспользуемых полях PE - что-то типа “I_hate_world” или “die1.0”. Наводит на размышления нестандартный адрес загрузки программы. Полиморфики могут вставлять кучу мусора и ничего не делающие последовательности команд. Если ты видишь в коде, написанном на асме, push eax pop eax, то это явно кто-то шифруется. Хочу заметить, что подобное явление для Delphi стандартно. Ну и, конечно, не могу обойти стороной незашифрованные строки. Наличие в файле “*.exe”, “virus” и тому подобных последовательностей красноречиво говорит о намерениях этой программы. Вирусы обычно ищут адреса нужных им API функций и делают это по их имени – в итоге, исследователь может выявить наличие в неположенных местах строк CreateFileA, WriteFile, FindFileA, GetProcAddress и т.д. Неположенные места - это все места, кроме директории импорта. Размер файла при заражении может не изменяться, если вирус раскидывает себя по пустым местам. Для анализа заголовка прекрасно подойдет все тот же PE Tools. Те, кто знает виндовый стандарт исполнимых файлов, смогут извлечь много информации о вирусе, если он там есть. Но лучшим способом определения заразы является сопоставление оригинала с возможной жертвой. Лечение этого вида вирусов в общем случае сводится к удалению плохого кода и исправлению значений заголовка. Универсальных алгоритмов, однако, не существует, поскольку не существует и универсальных алгоритмов заражения :). Вирусы могут всячески сопротивляться своему изгнанию из носителя, например, шифровать некоторые его участки, для того чтобы жертва «умерла» после исцеления. Единственный путь, дающий верный метод врачевания, - это изучение алгоритма вируса. Последнее слово К сожалению, объема статьи катастрофически не хватает для столь серьезной и обширной темы. Дам тебе один совет: вирусов пугаться не надо - их надо изучать. Если ты узнаешь о них все, то и система будет абсолютно цела. Подозрительные API-функции Если при просмотре директории импорта программы, которая, по идее, должна быть оффлайновой, ты обнаруживаешь нижеследующие функции, то эта прога явно может быть троянцем. InternetGetConnectedState – проверка онлайн WSAStartup – проверка версии сокетов socket – открытие сокета htons – конвертирование в сетевой порядок байтов inet_addr – конвертирование IP в «адрес» сервера gethostbyname – конвертирование доменного имени в «адрес» сервера |