Какой самый дешевый способ (ресурс) прочитать уникальный идентификатор сборки файла ELF. Что не так с моим подходом? - PullRequest
0 голосов
/ 18 апреля 2020

Мы знаем, что для файла .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), но там отсутствует идентификатор сборки, поэтому как мне прочитать?

Где хранится идентификатор сборки?

...