OSDev

для всех
Текущее время: 09 май 2024, 19:32

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Определить размер ELF файла
СообщениеДобавлено: 26 фев 2010, 21:29 

Зарегистрирован: 16 фев 2010, 22:03
Сообщения: 101
Можно ли как-нибудь определить размер ELF-файла только по его заголовку? Я вроде полей отвечающих за это не видел...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определить размер ELF файла
СообщениеДобавлено: 26 фев 2010, 22:48 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Вот это не скажу, с эльфами не разбирался. Когда-нибудь придётся, но нескоро... Кстати, а что понимать под размером? Место на диске? Но с длиной собственно содержательной части файла это может быть и не связано (как не связано для PE-файлов).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определить размер ELF файла
СообщениеДобавлено: 26 фев 2010, 23:45 

Зарегистрирован: 16 фев 2010, 22:03
Сообщения: 101
Размер содержательной части файла. У меня есть буфер неизвестного размера. В нём ELF файл. Мне надо его скопировать в другой буфер и загрузить уже оттуда. При этом мне нельзя потерять что-нибудь нужное, но и памяти надо выделить как можно меньше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определить размер ELF файла
СообщениеДобавлено: 27 фев 2010, 03:06 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Содержимое ELF делится на программную часть и непрограммную (просто "объектную"). Вам видимо нужна программная часть. В заголовке ELF есть указатель на Program Headers, а там список программных секций. У каждой секции, которая предназначена для загрузки в память, есть атрибут "ELF_PT_LOAD". Вот и выбирайте секции именно с этим атрибутом. Поищите в интернете файл ELF.pdf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Определить размер ELF файла
СообщениеДобавлено: 27 фев 2010, 15:28 

Зарегистрирован: 16 фев 2010, 22:03
Сообщения: 101
Ну этот то я знаю. Кстати, размер объектного ELF файла я определял так: размер = смещение_таблицы_секций + колшичество_секций * размер_заголовка_секции. Это проще чем перебирать все секции файла, т. к. заголовки секций положенно размецать в конце файла. А вот таблицу сегментов в начале, а таблицы секций вполне возможно не будет. Я конечно могу определить размер файла по таблице сегментов, но может есть более простой вариант? К тому же для загрузки может потребоваться информация из незагружаемых сегментов, поэтому и тоже придётся скопировать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 92


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB