Захват и освобождение заложников в исполняемых файлов


Компиляция и испытания вируса - часть 2


Если, конечно, мы захотим ее искать. Ведь не санкционирование внедрение в чужие файлы это уже УК!

Так что лучше совершенствовать вирус в другом направлении. При повторном заражении файла текущая версия необратимо затирает оригинальный код своим телом, в результате чего файл отказывает в работе. Вот беда! Как ее побороть? Можно добавить проверку на зараженность перед копированием вируса в файл. Берем CreateFile, передаем ей имя файла вместе с потоком (notepad.exe:eatmeout) и смотрим на результат. Если файл открыть не удалось, значит потока "eatmeout" тут нет и он еще не заражен, в противном случае мы должны отказаться от заражения. Или… выбрать другой поток. Например, eatmeout_01, eatmeout_02, eatmeout_03…

Другая проблема — вирус не корректирует длину целевого файла и после внедрения она уменьшается до 4 Кб — именно столько занимает текущая версия xcode.exe. Нехорошо! Пользователь тут же заподозрит подвох (explorer.exe, занимающий 4 Кб выглядит довольно забавно), занервничает и начнет запускать всякие нехорошие программы типа антивируса. Но что нам стоит запомнить длину жертвы перед внедрением, скопировать в нее свое тело, открыть файл на запись и сделать SetFilePointer на оригинальный размер, увеличивая размер жертвы до исходных значений.




Начало  Назад  Вперед



Книжный магазин