Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Внедрение. Типичный алгоритм внедрения выглядит так:
n считываем PE-заголовок;
n проверяем DATA DIRECTORY на предмет присутствия структур, привязывающихся к своему физическому смещению, и, если таковые обнаруживаются, либо отказываемся от внедрения, либо готовимся их скорректировать;
n если SizeOfHeaders = FS.v_a, отказываемся от внедрения, т.к. внедряться уже некуда;
n если SizeOfHeaders != FS.r_off первой секции, подопытный файл содержит оверлей и после внедрения может оказаться неработоспособным, однако, если от Size OfHeders до raw offset содержатся одни нули, внедряться сюда все-таки можно;
n если sizeof(X-code) <= FS.r_off, переходим к главе «внедрение в PE-заголовок»;
n если sizeof(X-code) <= FS.v_a, то:
n вставляем между концом заголовка и началом страничного имиджа ALIGN_UP((sizeof(X-code) + Size OfHeaders – FS.r_off), FA) байт, физически перемещая хвост файла; при загрузке файла весь X-код будет спроецирован в память;
n увеличиваем поле SizeOfHeaders на заданную величину;
n иначе:
n вставляем между концом заголовка и началом страничного имиджа ALIGN_UP((sizeof(X-code) + SizeOf Headers – FS.r_off), FA) байт, физически перемещая хвост файла; при загрузке файла системный загрузчик спроецирует только первые FS.v_a – SizeOf Headers байт X-кода, а все последующие ему придется считывать самостоятельно;
n SizeOfHeaders := FS.v_a;
n увеличиваем raw offset всех секций на величину физической раздвижки файла;
n корректируем все структуры, привязывающие к физическим смещениям внутри файла, перечисленные в DATA DIRECTORY.