Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Типичный алгоритм внедрения выглядит так:
n загружаем PE-заголовок и анализируем атрибуты последней секции;
n если флаг IMAGE_SCN_MEM_SHARED установлен, отказываемся от внедрения;
n если флаг IMAGE_SCN_MEM_DISCARDABLE установлен, либо отказываемся от внедрения, либо самостоятельно сбрасываем его;
n если флаг IMAGE_SCN_CNT_UNINITIALIZED_DATA установлен, лучше всего отказаться от внедрения;
n если ALIGN_UP(LS.r_sz, FA) + LS.r_a > SizeOfFile, файл содержит оверлей, лучше отказаться от внедрения;
n если LS.v_sz > LS.r_rz, хвост секции содержит данные инициализированные нулями, и следует либо отказаться от внедрения, либо перед передачей управления подчистить все за собой;
n дописываем X-код к концу файла;
n устанавливаем LS.r_sz на SizeOfFile – LS.r_off;
n если LS.v_sz >= (LS.r_a + LS.r_sz + (SizeOfFile – (LS.r_a + ALIGN_UP(LS.r_sz, FA))), оставляем LS.v_sz без изменений; иначе LS.v_sz := 0;
n если LS.v_sz != 0 пересчитываем Image Size;
n при необходимости корректируем атрибуты внедряемой секции: сбрасываем атрибут IMAGE_SCN_MEM_DISCARDABLE, и присваиваем атрибут IMAGE_SCN_MEM_READ;
n пересчитываем Image Size.
Идентификация пораженных объектов. Внедрения этого типа идентифицировать проще всего – они выдают себя присутствием кода в последней секции файла, которой обычно является либо секция неинициализированных данных, либо секция ресурсов, либо служебная секция, например, секция импорта/экспорта или перемещаемых элементов.
Если исходный файл содержал оверлей (или мусор, оставленный линкером), он неизбежно перекрывается последней секцией.
Восстановление пораженных объектов. Любовь начинающих программистов к расширению последней секции файла вполне объяснима (более или менее подробное описание этого способа внедрения можно найти практически в любом вирусном журнале), но вот алгоритмические ошибки, совершенные ими непростительны и требуют сурового наказания, ну или по крайней мере общественного порицания.