eXeL@B —› Вопросы новичков —› Несколько PE заголовков в одном файле. |
<< . 1 . 2 . 3 . |
Посл.ответ | Сообщение |
|
Создано: 12 января 2020 01:00 · Личное сообщение · #1 Всем привет. Писал тут небольшой сканер файлов. И с удивлением для себя обнаружил, что многие exe как матрешки нашпигованы PE заголовками. То есть несколько файлов объединены последовательно друг за другом. Ладно таким страдают всякие джойнеры, но нет вполне себе уважаемые программы. Есть идеи с какой практической целью такое делается??? |
|
Создано: 16 января 2020 00:06 · Личное сообщение · #2 VOLKOFF > не такая уж тривиальная задача точно выдернуть файл без динамического анализа Кстате SDK забанен за то что выложил инфектор. Получилось что лишь несколько самых простых ав его находят сигнатурно. Более продвинутые детект не вызывают, так как не смотря на наличие сигнатуры, на неё вероятно нет ссылок, те образ не рабочий. Для загрузки не достаточно просто образа и его валидности, нужен есчо и загрузчик, а системный с файлами или файловыми секциями работает, а не с памятью. zombi-vadim > Супер мега валидатор PE ntldr не супер и не мега, он может и ошибки в формате неплохо пропускать. Так что если ваша проверка покажет что формат невалид, то всё равно загрузка может пройти успешно. Это значит что есть лишь один способ узнать наверняка что формат валид - отобразить пе через штатный системный апи. ----- vx |
|
Создано: 17 января 2020 07:42 · Личное сообщение · #3 zombi-vadim бери ClockMan пишет: размер PE хидера не может превышать 1000 байт может 0db3_17.01.2020_EXELAB.rU.tgz - bigheader.7z |
|
Создано: 20 января 2020 19:47 · Поправил: zombi-vadim · Личное сообщение · #4 Не хочу создавать новую тему. Я знаю что размер SizeOfOptionalHeader обычно составляет 224 байта для 32 разрядного и 240 байт для 64 разрядного файла. Но эти значения не фиксированы. А также NumberOfRvaAndSizes необязательно имеет значение 10 директорий. Но на практике подобного файла я в жизни не видел. Поэтому (в моем понимании)чисто теоретически OptionalHeader может быть увеличен только за счет добавления новых каких то своих директорий. Интересно спросить у опытных людей насколько велика вероятность встретить в живой природе подобный файл? |
|
Создано: 20 января 2020 23:52 · Поправил: difexacaw · Личное сообщение · #5 zombi-vadim Всё собирается штатным линкером, любые не стандартные изменения в формате запалит авер, будет generic детект. Поищи викс семплы, отлаживай.. если так хочешь на изврат формата посмотреть. Только не забудь на вирт машине это делать, так как обычно оно запускается раньше, чем отладчик получает нотифи, после чего можно инфицированный отладчик им же и посмотреть ----- vx |
|
Создано: 21 января 2020 00:00 · Личное сообщение · #6 |
|
Создано: 21 января 2020 00:31 · Личное сообщение · #7 hors Это хорошо что имеет структуру, значит что пока авер не увидел, те на анализ не пошло А по делу есть ведь официальные доки ----- vx |
|
Создано: 21 января 2020 00:43 · Личное сообщение · #8 |
|
Создано: 21 января 2020 00:48 · Личное сообщение · #9 zombi-vadim Ты есчо забавное не видел. Какая разница какой размер у хидера. Пойми что модуль валид если он может быть загружен. Первые версии нт приводили к падению всей системы при попытке отобразить специальным образом сформированный образ. Зачем тебе это всё нужно, два хидера и прочее, короче какая задача ? ----- vx |
|
Создано: 21 января 2020 01:03 · Поправил: RamMerlabs · Личное сообщение · #10 zombi-vadim Можно и уменьшать и увеличивать кол-во директорий в опц.заголовке. Уменьшать - в зависимости от subsystem version можно, например до 3 (5.0 или 5.1) или до 11 (6.3, т.к. в этом случае обязательна директория LoadConfig с флагами для CFG), адекватные антивирусы и реагируют на это адекватно. unilink выше тому пример - его "детектят" только параноики и пустышки, едва завидев что-то отличное от майкрософтовского (ну или борландовского) пролога на точке входа или что им там ещё вздумается. Увеличивать - сколько влезет, только синхронизируйте с SizeOfOptionalHeader, т.к. именно этим полем файлового заголовка определяется смещение к таблице секций (если конечно вы специально не делаете перекрывающиеся заголовки, тут уже антивирусы вполне обоснованно могут возмутиться). Только смысла в этом нет - ваша программа будет единственной, кто воспользуется этими директориями, и в этом случае проще и надёжнее разместить данные из этих директорий просто среди других данных\кода программы. PS: в ms-доках описано много правил формата, нарушение которых совсем не препятствует нормальной загрузке и совсем необязательно вызывает тревогу у "контролёров". |
|
Создано: 21 января 2020 02:14 · Поправил: zombi-vadim · Личное сообщение · #11 difexacaw пишет: короче какая задача Да пытаюсь написать некий сканер, определяющий проблемы в заголовке, почему файл не загружается. В текущем вопросе, трудно просканировать файл если невалидно значение размера опционального заголовка (конкретно добраться до таблицы секций). Можно сканировать исходя из стандартных значений, но если в файле изначально заложен нестандартный размер, то ничего хорошего не получиться - вот я и спрашиваю насколько такая вероятность велика.. |
|
Создано: 21 января 2020 16:55 · Личное сообщение · #12 zombi-vadim Врядле решение возможно. Загрузка модуля проходит в две фазы, это его отображение ядром. Там только проверки формата необходимые для отображения. Ядро не возвращает подробную инфу про ход загрузки и что бы такое провернуть нужно ядерный загрузчик трассировать, гиблая затея. Вторая фаза это уже работа юзер загрузчика, он уже подробно всё разбирает в формате и может подробный лог вести. Даже если создать тестовый процесс и попытаться загрузить модуль без передачи управления, то найдётся ошибка не в формате, а скорее в смещениях, которые не проверяет ядро(релоки например). Эта задача не имеет решения, если прошло отображение, то образ валид. Что бы выяснить почему отображение не удалось используется отладка ядра. Как это сделать автоматикой хз. Я уже говорил что если образ не валид, то всё равно может быть успешно загружен ----- vx |
|
Создано: 21 января 2020 20:47 · Личное сообщение · #13 |
|
Создано: 24 января 2020 15:50 · Личное сообщение · #14 |
<< . 1 . 2 . 3 . |
eXeL@B —› Вопросы новичков —› Несколько PE заголовков в одном файле. |