Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
В общем случае внедрение в заголовок осуществляется так:
n считываем PE-заголовок и приступаем к его анализу;
n если SizeOfHeaders < FS.r_off и (SizeOfHeaders + sizeof(X-code))< FS.r_off, то:
n увеличиваем SizeOfHeaders на sizeof(X-code) или же просто подтягиваем его к raw offset первой секции;
n записываем X-код на образовавшееся место;
n иначе:
n сканируем PE-заголовок на предмет поиска непрерывной цепочки нулей и, если таковая будет действительно найдена, внедряем свое тело, начиная с 10h байта от ее начала;
n внедряем X-код в MS-DOS-заглушку, не сохраняя ее старого содержимого;
n если внедрение прошло успешно, перехватываем управление на X-код.
Идентификация пораженных объектов. Внедрение в PE-заголовок в большинстве случаев можно распознать и визуально. Рассмотрим, как выглядит в hex-редакторе типичный исполняемый файл (см. рис. 3): вслед за концом MS-DOS-заголовка, обычно содержащим в себе строку «This program cannot be run in DOS mode» (или что-то подобное), расположена «PE»-сигнатура, за которой следует немного мусора, щедро разбавленного нулями и плавно перетекающего в таблицу секций, содержащую легко узнаваемые имена .text, .rsrc и .data (если файл упакован, названия секций скорее всего будут другими).
Рисунок 3. Так выглядит типичный PE-заголовок незараженного файла
Иногда за таблицей секций присутствует таблица BOUND импорта с перечнем имен загружаемых динамических библиотек. Дальше, вплоть до начала первой секции, не должно быть ничего, кроме нулей, использующихся для выравнивания (отождествить начало первой секции легко, hiew ставит в этом месте точку). Если же это не так, то исследуемый файл содержит X-код (см. рис. 4).