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

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

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

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

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

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


Ранг: 603.8 (!)
Статус: Модератор
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.8 (гость)
Статус: Участник

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

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


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

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

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

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

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

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


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

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

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


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

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

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

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

Видеокурс ВЗЛОМ