Как найти раздел .init
? Заголовок секции имеет поле Elf32_Word sh_name
. Поэтому я предполагаю, что мне нужно пройти через все разделы, чтобы найти имя с именем .init
Но не является массивом символов. Это индекс записи в String Table. Где находится таблица строк? В заголовке ELF есть поле elfHdr.e_shstrndx
. Это индекс раздела, где находится String Table. Итак, чтобы вычислить смещение таблицы String, я использую формулу, которая описана ниже.Поиск .init в файле ELF
offset = ((elfHdr.e_shstrndx)*elfHdr.e_shentsize)+elfHdr.e_shoff,
where
elfHdr.e_shstrndx = index where we can find .shstrtab
elfHdr.e_shentsize = Size of each Section Header
elfHdr.e_shoff = Offset at which section header starts.
Но отклоненное смещение не является правильным смещением таблицы строк. Я пробовал его в разных файлах. Может быть, есть еще один способ определить, является ли раздел .init
или нет?
Спасибо! Это верно – Qwerty