Дата: Понедельник, 17.11.2014, 16:21 | Сообщение # 1
Постоянный
Зарегистрирован: 20.12.2012
Группа: Пользователи
Сообщений: 161
Статус: Offline
1.Вообщем, недавно узнал про такой метод заражения как внедрение вируса в середину файла, вопрос следующий - какой в этом толк и разве после этого файл будет работать? Описание метода:
Существует несколько возможностей внедрения вируса в середину файла. В наиболее простом из них вирус переносит часть файла в его конец или раздвигает файл и записывает свой код в освободившееся пространство. Этот способ во многом аналогичен методам, перечисленным выше. Отдельные вирусы при этом сжимают переносимый блок файла так, что длина файла при заражении не изменяется (см. например Mutant).
2.Есть метод с дописыванием в конец, а вот как изменить заголовок? Через BlockWrite первые 4 байты менять чтоль? Если да - то как записать ассемблерные команды в байтах, а?
3.Если ли отдельная секция с ресурсами(иконки и т д)? Если есть - где ее расположение?
Сообщение отредактировал Slash - Понедельник, 17.11.2014, 16:24
Дата: Понедельник, 17.11.2014, 20:29 | Сообщение # 2
Частый гость
Зарегистрирован: 08.10.2014
Группа: Пользователи
Сообщений: 57
Статус: Offline
прошу прощение возможно не в тему но еще и метод есть следующий При заражении пишет себя в начало жертвы, а оригинальное начало переносит в конец файла. Часть перенесенного блока (первые 1000 байт) шифрует.
Дата: Понедельник, 17.11.2014, 21:44 | Сообщение # 3
Постоянный
Зарегистрирован: 20.12.2012
Группа: Пользователи
Сообщений: 161
Статус: Offline
ЦитатаHTTqp ()
прошу прощение возможно не в тему но еще и метод есть следующий При заражении пишет себя в начало жертвы, а оригинальное начало переносит в конец файла. Часть перенесенного блока (первые 1000 байт) шифрует.
Это метод сдвига называется. Такое реализовать проще простого.
Сообщение отредактировал Slash - Понедельник, 17.11.2014, 21:45
Дата: Понедельник, 17.11.2014, 23:52 | Сообщение # 4
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
ЦитатаSlash ()
как внедрение вируса в середину файла
как я понимаю, тут главное не нарушить целостность (работоспособность) самого файла в который внедряешься, следовательно нужно правильно разделить секции (блоки), об этом как то уже писал Anton93, даже тема на форуме где то уже была, в целом могу лишь посоветовать почитать подробно о структуре PE файлов.
Внедрение способом переноса Вирусы данного типа размножаются следующим образом. Из инфицируемой программы от начала файла считывается часть кода, по длине равная длине вируса. На освободившееся место вписывается вирус, а оригинальное начало программы переносится в конец файла. Отсюда и название метода – «метод переноса». Есть и другие варианты. Иногда, например, начало программы записывается в середину файла, а середина переносится в конец, чтобы еще сильнее все запутать. Превосходство данного метода над другими описанными в том, что инфицированная программа исполняется в том же виде, в каком она была до заражения, из файла с тем же именем и расширением. То есть программы, проверяющие себя на предмет заражения вирусом, его не замечают. Корректно исполняются и такие программы, которые ищут свои файлы конфигурации с именами:
ИМЯ_И_ПУТЬ_К_САМОЙ_ПРОГРАММЕ +.INI
Недостаток данного метода проявляется при сбоях в работе компьютера. Если при исполнении инфицированной программы компьютер «повиснет» или произойдет перезагрузка системы, инфицированная программа окажется «чистой», то есть без вируса. Но, во-первых, «кто не рискует, тот не пьет шампанского», а во-вторых, программы виснут редко. Алгоритм работы такого вируса следующий: 1. Открыть файл, из которого получено управление. 2. Считать в буфер тело вируса. 3. Закрыть файл. 4. Найти файл-жертву. 5. Открыть файл-жертву. 6. Проверить файл на повторное заражение (здесь могут быть варианты, но чаще всего используется сигнатура). 7. Если файл уже инфицирован, перейти к пункту 3. 8. Считать в буфер из начала найденного файла фрагмент программы, по длине равный телу вируса. 9. Записать в начало файла тело вируса из буфера. 10. Дописать в конец файла считанное начало программы из буфера. Длина программы увеличилась на длину вируса. 11. Закрыть файл-жертву. 12. Открыть файл, из которого стартовали. 13. Считать в буфер начало инфицированной программы, расположенное в конце файла. 14. Записать считанное начало программы поверх кода вируса в начало файла. 15. Сократить файл до его оригинальной длины (то есть удалить часть кода, по длине равную длине тела вируса, в конце файла). 16. Закрыть файл. 17. Процедурой Exec запустить стартовый файл (ParamStr(O)) на исполнение – выполнится инфицированная программа. 18. После завершения работы программы опять открыть стартовый файл. 19. Записать в начало файла тело вируса, а оригинальное начало программы опять переместить в конец файла. 20. Закрыть файл. 21. Вернуть управление в DOS.