Публикации по теме 'elf'
RELRO: RELocation только для чтения
Эта статья была первоначально размещена на blog.isis.poly.edu 2 июня 2011 г. .
В этой статье описываются разделы перемещения ELF, как использовать их для выполнения произвольного кода и как защитить их во время выполнения.
Разделы переезда в формате ELF
Динамически связанный двоичный файл ELF использует поисковую таблицу, называемую глобальной таблицей смещения (GOT), для динамического разрешения функций, которые находятся в разделяемых библиотеках.
Когда вы вызываете функцию,..
Вопросы по теме 'elf'
Программа C для разделения части данных файла elf
Используя readelf, мы можем отделить часть данных от файла elf (используя оболочку). Можно ли сделать то же самое с программой C?
462 просмотров
schedule
29.12.2023
Видимость символа, исключения, ошибка времени выполнения
Я пытаюсь лучше понять видимость символов. В GCC Wiki ( http://gcc.gnu.org/wiki/Visibility ) есть раздел про "Проблемы с исключениями C ++". Согласно GCC Wiki, возможна ошибка выполнения из-за неэкспортированных исключений. Ошибки времени...
3189 просмотров
schedule
04.10.2022
Как сделать исполняемый файл ELF в Linux с помощью шестнадцатеричного редактора?
Просто любопытно. Очевидно, это не очень хорошее решение для реального программирования, но скажем, я хотел сделать исполняемый файл в Bless (шестнадцатеричный редактор).
Моя архитектура - x86. Какую очень простую программу я могу сделать?...
11654 просмотров
schedule
29.08.2022
Загрузка неподвижного статического двоичного файла ELF в пользовательское пространство
Я пытаюсь написать базовый загрузчик ELF пользовательского пространства, который должен иметь возможность загружать статически связанные (не динамически связанные) неперемещаемые двоичные файлы (т.е. не построенные с -pie, -fPIE и т. Д.). На данный...
1097 просмотров
schedule
19.09.2022
Создание простого крошечного ELF с нуля
В настоящее время я пытаюсь создать простой исполняемый файл ELF с использованием библиотеки ELFIO на основе их документов (стр. 8) [1]. Это вывод из readelf при запуске на слегка измененной версии их кода (ничего важного, просто другая строка и...
648 просмотров
schedule
13.10.2023
моделирование поведения --whole-archive для каждого символа
Я знаком с тем, что делает параметр компоновщика --whole-archive при использовании статического архива.
Есть ли способ добиться того же эффекта для каждого символа с помощью некоторых атрибутов символа или любого другого трюка?
Для ясности,...
786 просмотров
schedule
21.08.2022
Не удается разобрать DWARF — информация о DWARF процессора Tricore
Я изо всех сил пытаюсь разобрать файл ELF - содержимое DWARF *.elf после компиляции компилятором Tasking для ЦП Infineon Tricore. Я не могу сопоставить .debug_abbrev и .debug_info, мне кажется, что содержимое повреждено. Можете ли вы, ребята,...
217 просмотров
schedule
14.10.2022
GCC хранит все строки в .rodata
В моем ядре x86-64 я пытаюсь отобразить раздел .rodata ELF только для чтения. Но все строковые литералы хранятся в разделе, специфичном для файла, например. .rodata.str1.8 . Есть ли возможность для GCC хранить все строки в .rodata вместо...
897 просмотров
schedule
24.02.2024
Является ли -fPIC ТОЛЬКО для разделяемых библиотек?
Я знаю, что -fPIC необходим для разделяемых библиотек, и знаю, почему.
Однако мне не понятен вопрос:
Нельзя ли использовать -fPIC при создании исполняемого файла или статической библиотеки?
1740 просмотров
schedule
14.10.2022
Дизассемблирование GDB заполнено нулями
Когда я запускаю objdump -D в своем файле, я получаю ожидаемый ассемблерный код.
kernel.elf: file format elf32-i386
Disassembly of section .text:
00100000 <__code>:
100000: 02 b0 ad 1b 03 00 add 0x31bad(%eax),%dh...
98 просмотров
schedule
06.07.2022
Запись DT_USED в разделе .dynamic файла ELF
Меня интересует запись DT_USED в разделе .dynamic. Однако мне удалось найти только два примера кода, описывающие эту запись.
1.
#define DT_USED 0x7ffffffe /* ignored - same as needed */
в...
99 просмотров
schedule
15.10.2022
Изменить видимость символа в скомпилированной общей библиотеке
Мой проект зависит от сторонней библиотеки, которая экспортирует больше символов, чем должно. Некоторые из этих символов непреднамеренно перезаписываются другими библиотеками и основной программой.
Как изменить видимость функций и переменных...
442 просмотров
schedule
10.10.2022
LD_BIND_NOW не влияет на исполняемый файл ELF PIE.
Наблюдения
Когда исполняемый файл Linux скомпилирован как PIE (Position Independent Executable, по умолчанию в Ubuntu 18.04), символы из общих библиотек (например, libc) будут разрешены, когда программа начнет выполняться, установка переменной...
201 просмотров
schedule
20.04.2024
Исполняемый файл говорит, что строка 1: ELF: не найдена при запуске
Я пытаюсь создать простой hello, world ELF для своего маршрутизатора Xiaomi Router 3g с помощью cmake . Он работает
Linux OpenWrt 4.14.95 #0 SMP Wed Jan 30 12:21:02 2019 mips GNU/Linux
Я использую sdk для платформы ramips (платформа...
10399 просмотров
schedule
28.10.2022
Напечатать elf32_Word как слово
Я работаю с файлами ELF. У меня есть переменные типа elf32_Word , и я хотел бы напечатать их в терминале в виде текста.
Например, имя моей таблицы разделов:
Elf32_Shdr ST;
printf("%d",ST[].sh_name);
но значение "%d" не подходит (оно...
74 просмотров
schedule
02.10.2022
ELF - исправление точки входа с адресом x86 с нулевым расширением
Мне удалось исправить точку входа в файл ELF и сделать так, чтобы он указывал на какое-то другое место и выполнял фрагмент кода, прежде чем вернуться к исходной точке входа. Вот как я пытаюсь вернуться к OEP:
mov rax, 0x4141414141414141 ( 48 b8...
153 просмотров
schedule
01.05.2024
почему не получается SIGSEGV при переполнении раздела .data
Наличие такой программы на ассемблере у меня отлично работает, и я не знаю, почему
section .data
name: db "abcdef"
section .text
global _start
_start:
std
mov rsi, name+5
mov rdi, name+1050 ; should be pointing to non...
24 просмотров
schedule
16.01.2024
Получение ошибки сегментации при попытке выполнить введенный код внутри двоичного файла ELF
В настоящее время я работаю над ELF-инжектором, и мой подход стандартен: найти кодовую пещеру (достаточно длинную последовательность нулей), переписать ее с инструкциями, которые я хочу выполнить, а затем вернуться к началу исходной программы, чтобы...
113 просмотров
schedule
28.10.2022