eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: forever_ (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Компилятор gcc
Посл.ответ Сообщение

Ранг: 4.4 (гость)
Статус: Участник

Создано: 23 октября 2018 12:34 New!
Цитата · Личное сообщение · #1

Как скомпилировать прогу в gcc чтоб все секции были rwx, чтоб была возможность переписывать код(например часть функции которая не задействована), после компиляции(эксплойтом).


Ранг: 580.9 (!)
Статус: Модератор
Research & Development

Создано: 23 октября 2018 15:13 New!
Цитата · Личное сообщение · #2

Можешь использовать атрибут section("section-name") через __attribute__, где тебе нужно будет указать флаг aw (allocatable и writable), например:
Code:
  1. unsigned int __attribute__((section(".text,"aw"))) VarName;


Как вариант - задавать отдельно параметры для линкера ld.

Ранг: 4.4 (гость)
Статус: Участник

Создано: 23 октября 2018 21:54 New!
Цитата · Личное сообщение · #3

Это как то должно задаваться в параметрах компиляции, но не могу найти как. Куча статей, но то что там есть не работает
Вот напримео:
https://stackoverflow.com/questions/27581279/make-text-segment-writable-elf


Ранг: 580.9 (!)
Статус: Модератор
Research & Development

Создано: 24 октября 2018 11:52 New!
Цитата · Личное сообщение · #4

В моём комментарии был пример с добавлением строки в сорс, ты этот способ попробовал?

Ранг: 4.4 (гость)
Статус: Участник

Создано: 27 октября 2018 20:22 New!
Цитата · Личное сообщение · #5

Пробовал, не получилось.
Добавлял в самом main и отдельно, не работает.
VarName это что?
Ковычки одни потерялись или так и должно быть? (".text","aw")


Ранг: 580.9 (!)
Статус: Модератор
Research & Development

Создано: 28 октября 2018 01:11 New!
Цитата · Личное сообщение · #6

Vladislou пишет:
VarName это что?


VarName - это имя твоей переменной

Ранг: 370.2 (мудрец)
Статус: Участник

Создано: 28 октября 2018 08:19 New!
Цитата · Личное сообщение · #7

Поменяй атрибуты страниц в рантайме и не парься. Один вызов VirtualProtect / mprotect на весь модуль, и можно писать во все секции...
 eXeL@B —› Вопросы новичков —› Компилятор gcc

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS