Но вы можете увидеть в прилагаемом изображении, что смещение 464 есть только нули.
Неправильно: 01
, 20
, 29
, 12
т.д. не "нули" в последний раз я проверил.
Я полагаю, что импорт Таблица начинается по смещению 528
Нет, это не так. По какой-то причине вы ожидаете найти таблицу импорта стилей Microsoft PE
в файле ELF. Его нет.
эквивалент таблицы импорта в ELF содержится в двух таблицах. Один из них содержит Elf{32,64}_Sym
записи фиксированного размера:
typedef struct
{
Elf32_Word st_name; /* Symbol name (string tbl index) */
Elf32_Addr st_value; /* Symbol value */
Elf32_Word st_size; /* Symbol size */
unsigned char st_info; /* Symbol type and binding */
unsigned char st_other; /* Symbol visibility */
Elf32_Section st_shndx; /* Section index */
} Elf32_Sym;
и содержится в разделе .dynsym
.
Другая таблица содержится в разделе .dynstr
(который в вашем файле начинается со смещения 528) и имеет только строки (переменный размер), разделенные символом NUL
.
В первой таблице .st_name
относится к офсету в .dynstr
.
спасибо за ответ. Но на смещении 464 нет записи Elf32_Sym. sh_offset = 464 Я получил из заголовка раздела .dynsym. Странно, что sh_size = 64 и в то же время sizeof (Elf32_Sym) = 16. – Qwerty
Я просто задумался. Может быть, эти 64 байта - 4 записи (Elf32_Sym)? – Qwerty