Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Boris Shklyaev                       2:5079/67.43   04 Sep 2006  23:43:11
 To : Dmitry E. Oboukhov
 Subject : получить чистый бинарник
 -------------------------------------------------------------------------------- 
 
 
 
  DO> вопрос 1: как из C узнать размеры сегментов .text, .rodata и .data?
  DO> очень не хочется на Асме стартап код писать. но соответственно если
  DO> альтернатив нет, то тот же вопрос про АСМ: как узнать в нем размеры
  DO> тех же сегментов?
 
 думаю, никак. этими делами лоадер ELF-ов занимается. можно открывать файл и
 читать хедер файла (т.е. статически). но из программы открыть себя не получится,
 по крайней мере, "movl $4,%eax / int $0x80", скомпилированные в as/ld вызывают
 Segmentation Fault. придется вписывать константы в бинарь. прямо вычислять
 смещение относительно EP (0x8048054 или даже больше) и подставлять.
 энтрипоинт лежит в elf-хедере dword-ом по смещению 0x18.
 
  DO> вопрос 2: есть ли гарантия того что линкуемое последним попадает в
  DO> конец?
 
 да вроде так оно и есть. во всяком случае, hex-редакторы никто не отменял :))
 
  DO> вопрос 3: как слинковать так чтобы сегмент .data попадал сразу после
  DO> сегмента .text? то есть если .text меняет свои размеры от компиляции к
  DO> компиляции чтобы и .data менял свое положение?
 
 а разве расположение не такое?
 
    [Text]
    [Initialized Data]
    [Uninitialized Data]
    [Stack]
 
 т.е. насколько я знаю, данные всегда после кода идут. типа соглашение такое,
 чтобы загрузчику лишний раз не возиться.
 
  _/Good Luck, Dmitry./_
  *ФИТ-152*
 --- GED+W32 (but Linux best!)
  * Origin: Старик Похабыч (2:5079/67.43)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 получить чистый бинарник   Dmitry E. Oboukhov   16 Aug 2006 17:12:03 
 Re: получить чистый бинарник   Grishka Chervonets   17 Aug 2006 13:08:49 
 получить чистый бинарник   Dmitry Ponyatov   17 Aug 2006 18:14:08 
 получить чистый бинарник   Dmitry E. Oboukhov   04 Sep 2006 14:17:55 
 получить чистый бинарник   Sergey Khvatov   04 Sep 2006 15:09:40 
 получить чистый бинарник   Boris Shklyaev   04 Sep 2006 23:43:11 
 Re: получить чистый бинарник   Dmitry Fedorov   05 Sep 2006 10:05:09 
 получить чистый бинарник   Dmitry E. Oboukhov   05 Sep 2006 13:24:06 
 Re: получить чистый бинарник   Dmitry Fedorov   05 Sep 2006 17:03:48 
Архивное /ru.linux/340844fc65d4.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional