Раздел: Документация
0 ... 11 12 13 14 15 16 17 ... 102 с инкрементнои линковкои и вместо непосредственного вызова всякой импо тируемой функции, вызывает «переходник» к ней. Таким образом, каждая щ портируемая функция вызывается лишь однажды и IDA генерирует лини, оц, перекрестную ссылку. При заражении файла картина меняется, и к АР1-фун" циям, используемым вирусом, теперь ведут две и более перекрестные ссы.-щ, Это — вернейший признак вирусного заражения! Вернее и быть не может (д„ стинги 1.8 и 1.9)! Листинг 1.8. «Заглушка», представляющая собой переходник к импортируемой функции и оттягивающая все перекрестные ссылки на себя BRAT0:00648310 CreateFileA proc nearCODE XREF: sub 432A58+C0Tpg.j BRATO:00648310: sub 432BC0+C0tp ... BRAT0:00648310 FK 25 48 44+ jnp ds: 1np CreateFeAЩ{ BRAI0:00648310 CreaieHleA endp Листинг 1.9. Таблица импорта исследуемого приложения: наличие «паразитной» ссылки на CreateFileA указывает на факт вирусного заражения ,idata:006A4440 extrn Jmp CreateDirectoryA:dword;DATA XRF>:CreateCirectoryATr .idata:006A4444 extrn imp CreateEventA:dword:DATA XREF:CreateEventAtr ,idata:006A4448 extrn irnp CreateFileA:dword:DAI A XREF:CreateF i 1 eAtr ,idata:006A4448:DATA XREF:sub 6A4140Tr .idata:006A444C extrn imp CreateProcessA:dword:DATA XREF:CreateProcessAT- .idata:006A445C extrn i4ip CreateTr,read:dwo-d:DATA XRtt :Createlbreadtr А что, если вирус захочет создать собственную секцию импорта или как вариант — попытается расширить уже существующую? Ну, две секции импорта для операционных систем семейства Windows — это слишком! Хотя... Почему, собственно, нет? Вирус создает еще одну секцию импорта, дописывая ее в коней файла, копирует туда содержимое оригинальной таблицы импорта, добавляет недостающие API-функции и затем направляет ноле Import Table па «свою» таблицу импорта. По факту загрузки файла операционной системой вирус проделывает обратную операцию, перетягивая таблицу импорта «назад». Необходимость последней операции объясняется тем, что система находит таблицу импорта по содержимому поля Import Table, а непосредственно сам исполняемый файл работает с ней по фиксированным адресам. ВНИМАНИЕ Наличие двух таблиц импорта в файле — верный признак его заражения! Расширение уже существующей таблицы импорта менее заметно, но при на личии опыта работы с РЕ-файлами его все-таки можно разоблачить. ТаК большинство линкеров упорядочивают импортируемые функции по алфа виту, и функции, дописанные вирусом в конец таблицы импорта, сразу Же обращают на себя внимание. Даже если импорт и не отсортирован, новь шейная концентрация характерных для вируса API-функций не останется незамеченной. пеевероятного внедрения вирусов 47 ПРИМЕЧАНИЕ Перечисление имен всех импортируемых функций обычно идет сплошным потоком от первой до последней используемой DLL, причем библиотека KERNEL32.DLL (которая вирусу и нужна!) оказывается в конце списка достаточно редко. Вирусу ничего не остается как дописывать импорт из KERNEL32.DLL в хвост другой библиотеки, в результате чего ссылка на модуль KERNEL32.DLL в таблице импорта зараженного файла присутствует дважды! ...Вот мы н рассмотрели основные способы выявления зараженных файлов и теперь можем смело приступать к расширению и углублению полученных знаний и навыков. Чем больше вирусов пройдет через ваши руки, — тем легче будет справиться с каждым из них. В конце концов, не так страшны вирусы, как люди... ГЛАВА 2 ВИРУСЫ В UNIX, ИЛИ ГИБЕЛЬ ТИТАНИКА II из которой читатель узнает, что в UNIX-системах вирусы не только живут, но даже очень бурно размножаются, пожирая скрипты и демонстрируя с десяток различных способов внедрения в elf/coff/a.out файлы ...ночью 14 апреля 1912 года принадлежавший Британии непотопляемый океанский лайнер «Титаник» столкнулся с айсбергом и утонул, унеся с собой жизни более пятнадцати сотен из двух тысяч двухсот пассажиров... Поскольку «Титаник» был непотопляем, на нем не хватило спасательных шлюпок... Джозеф Хеллер. «Вообрази себе картину» ...считается, что в UNIX-системах вирусы не живут — они там дохнут. Отчасти это действительно так, однако не стоит путать принципиальную невозмоЖ" ность создания вирусов с их отсутствием как таковых. В действительности #е UNIX-вирусы существуют, и на начало 2004 года их популяция насчитывает более двух десятков. Немного? Не торопитесь с выводами. «Дефицит» виру; сов носит субъективный, а не объективный характер. Просто в силу меньшей распространенности UNIX-подобных операционных систем и специфики и* 0 ... 11 12 13 14 15 16 17 ... 102
|