Мы знаем, что для файла .so заголовок раздела для note.gnu.build-id выглядит следующим образом.
idx смещение load-addr size algn flags тип секции 001 0x000001c8 0x000001c8 0x00000024 4 0x00000002 0x00000007 .note.gnu.build-id
Поэтому, когда я пытаюсь прочитать идентификатор сборки из заданного местоположения смещения, я получаю неправильный результат. Вот фрагмент кода, который я использую.
FILE *f=fopen("lin.so","rb");
char k[40];
fseek(f,456,SEEK_SET);
fread(k,40,1,f);
int j=0;
while(j<40){
printf("%c",k[j]);
j++;
}
Теперь программа выдает правильный вывод в соответствии с кодом (и проверяется с помощью hexdump), но там отсутствует идентификатор сборки, поэтому как мне прочитать?
Где хранится идентификатор сборки?