Публикации по теме '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 просмотров
elf
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