Я использую утилиту readelf для проверки (-h) исполняемого файла, и я вижу, что поле e_entry имеет значение: 0x8048530. Затем перекомпилируйте проверенную программу и напечатайте ее собственную запись программы, добавив строку: printf («% p \ n», (void *) main) и выдает: 0x80485e4. Почему у меня такая разница? (ОС: Linux 32-разрядная версия)Поле ввода ELF и фактическая запись программы
1
A
ответ
3
Запись точка исполняемого обычно не main
себя, но конкретная функция платформы (что мы будем называть _start
), который выполняет инициализацию перед вызовом main
.
1
Отвечая на вопрос «Могу ли я получить доступ к этикетке _start от основного корпуса?»:
#include <stdio.h>
int main()
{
void* res;
#if defined(__i386__)
asm("movl _start, %%eax" : "=a" (res));
#elif defined(__x86_64__)
asm("movq _start, %%rax" : "=a" (res));
#else
#error Unsupported architecture
#endif
printf("%p\n", res);
return 0;
}
Смежные вопросы
- 1. Самоопределение ввода программы
- 2. Запись RTL в поле ввода
- 3. Common Lisp: Запись внешнего ввода программы
- 4. Как используется поле ввода программы CodeRunner?
- 5. Как текстовое поле ввода и поле ввода?
- 6. ELF Parser для разделения данных программы
- 7. Чтение содержимого заголовка программы в файле ELF
- 8. Как найти номер заголовка программы ELF
- 9. ELF чтение/запись в другой памяти процесса
- 10. Трассировка загрузки файла ELF
- 11. Прочтите запись GOT в двоичном файле Elf
- 12. JHipster фактическая дата
- 13. Поле ввода md-chips и md-autocomplete
- 14. objdump ELF и Windows
- 15. протоколирование (запись) событий программы
- 16. Vb.net Поле ввода Функция
- 17. Поле ввода до ввода двух букв
- 18. Радио-кнопка и поле ввода
- 19. Открыть две программы без ввода текста
- 20. ошибка ввода программы
- 21. Написание программы для ввода и анализа данных
- 22. Завершение и перезапуск программы из пользовательского ввода
- 23. MS Access блокирует запись после ввода данных в поле Memo
- 24. Запись в поле ввода HTML с помощью Excel VBA
- 25. ELF файл TLS и программа НАГРУЗКИ секция
- 26. Сохраните последнюю вставленную запись в поле ввода, используя php
- 27. Запись текста в поле ввода в диалоге tcl/tk
- 28. Чтение/запись наблюдаемого не всегда обновляется в поле ввода (нокаут)
- 29. Elf header - Повторение сегментов
- 30. execv ждет ввода ввода вместо выполнения программы
Могу ли я получить доступ к этикетке _start от основного корпуса? –