|
0 / 0 / 0
Регистрация: 25.07.2022
Сообщений: 29
|
||||||
Добавление секции в Portable Executable10.02.2025, 23:35. Показов 5071. Ответов 28
Метки нет (Все метки)
Изучая PE исполняемых файлов стало интересно модифицировать свой hello_world.exe, чтобы он выводил какой-нибудь messagebox. Дело до messagebox-а ещё не долшо, потому что не получается даже секцию добавить, ибо windows мою модификацию обрабатывать отказывается. Порядок действий программы следующий:
1. Прочитать DOS, найти смещение до PE 2. В PE найти кол-во секций 3. Прочитать n секций, чтобы дойти до последней 4. Создать свою секцию 5. Записать секцию в таблицу секций 6. Добавить полезной нагрузки (опционально, ломается и без этого пункта) Далее код разбитый на вышеупомянутые пункты.
Возможно ли, что хеш я записываю write-ом, а надо insert-ом? Или же может быть такое, что когда я использую insert для новой секции, где-то на её место указывал какой-то указатель, чем я опять же могу ломать PE. Просто если это так, то как добавить секцию и возможно ли это автоматизировать под любое PE приложение вовсе?
0
|
||||||
| 10.02.2025, 23:35 | |
|
Ответы с готовыми решениями:
28
Процессы, модули и Portable Executable Portable Executable (PE-Формат. Теория) |
|
Модератор
|
||
| 14.02.2025, 17:57 | ||
Сообщение было отмечено Koresup как решение
Решение
Исходя из 1-го поста у Вас ошибки:
1. При вставке заголовка секций - не нужно раздвигать файл, т.к. все съедет. Обычно в PE файле достаточно места - можно просто перезаписать нули за последней записью в списке секций. Т.е. сделать что-то типа этого: file.write((char*)sections, sizeof(IMAGE_SECTION_HEADER) * (numOfSec + 1));2. У Вас новая секция записывается в конец файла, но в поле SizeOfRawData у Вас размер с учетом файлового выравнивания, а по факту там без файлового выравнивания.По правильному так вставлять секцию не следует. Нужно парсить весь EXE файл, т.к. там еще могут быть EOF данные, которые нужно также переносить.
1
|
||
|
Модератор
|
|
| 14.02.2025, 18:16 | |
|
Добавлю, чтобы передать управление на вставленный код нужно еще переопределить AddressOfEntryPoint, но и тут работать не будет т.к. шеллкод у Вас содержит 32 битный код который содержит абсолютные адреса:
В 64 битах он выглядит так и тут используется уже RIP адресация:
0
|
|
|
0 / 0 / 0
Регистрация: 25.07.2022
Сообщений: 29
|
|
| 15.02.2025, 00:04 [ТС] | |
|
Morgot, alnmem.zip этот уже ошибку выбивает, моя просто закрывается.
0
|
|
|
0 / 0 / 0
Регистрация: 25.07.2022
Сообщений: 29
|
|
| 15.02.2025, 00:20 [ТС] | |
|
The trick, да, второй пункт уже исправил. Проблема в том, что использую insert, вместо write-а. Возникает вопрос - всегда ли будет кармашек из нулевых байтов после таблицы секций? Что, если после таблицы не будет места для ещё одного IMAGE_SECTION_HEADER?
0
|
|
|
Модератор
|
|||
| 15.02.2025, 12:20 | |||
|
0
|
|||
|
6 / 5 / 1
Регистрация: 06.11.2016
Сообщений: 39
|
||
| 15.02.2025, 14:47 | ||
Их можно даже перемешать.А заголовок можно пересоздать с нуля. Разве что Rich-сигнатуры потеряются.
0
|
||
|
Модератор
|
||
| 15.02.2025, 15:31 | ||
|
В нашем случае SECHDR - заголовки секций стоят "впритык" к данным секции .text. Как вставить новую запись не вызвав конфликт между заголовками и первой секцией? Если в файле данные секции переместить в другое место - это не избавит от того что заголовки секций будут размещены по RVA 0x1000.
0
|
||
|
6 / 5 / 1
Регистрация: 06.11.2016
Сообщений: 39
|
||
| 15.02.2025, 16:10 | ||
|
Ситуация довольно экзотическая. Если в заголовок не напихано недокументированного мусора, то для переполнения размера 1000h там должно быть около 90 секций (x32). А если напихано, то заголовок можно пересоздать. И хороший инструмент для такого: CFF Explorer. PS Посмотрел сейчас для примера notepad.exe от WinXP. Там впритык к последней секции в заголовке идёт блок Bound Import Directory. Еще один подводный камень автору темы.
0
|
||
|
Модератор
|
|||
| 15.02.2025, 16:29 | |||
|
упереться сразу же: Другое дело что практически никто так не делает.
0
|
|||
| 15.02.2025, 16:29 | |
|
Добавление секции в таблицу Добавление секции в EXE файл Добавление секции в нужное место на Elementor Добавление в очередь (xQueueSend) внутри критической секции Fasm section '.data' readable writeable executable и readable executable Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|