現在、私はelfファイルヘッダーを読み取り、いくつかの情報を出力する小さなプログラムを書いています
elfファイルがメモリ内にある場所を指すbufというunsignedcharポインタがあり(mmapを使用してメモリにマップしました)、適切なelfヘッダーポインタに型キャストします
Elf32_Ehdr *ehdr = (Elf32_Ehdr *)buf;
この後、プログラムヘッダーテーブルのアドレスを取得したいので、このようにします
Elf32_Phdr *ptbl = (Elf32_Phdr *) (buf + ehdr->e_phoff)
ptblポインターの値が変更されないことに気付いたので、このようにe_phoffメンバーの値を出力しようとすると
fprintf( stdout , "Offset of program headers : %d\n", ehdr->e_phoff);
プログラムヘッダーの数とセクションヘッダーの数を出力しようとすると、同じことが起こります-常にゼロになりますLinux readelfを使用すると、適切な値が出力されます誰かが同じ問題を経験しましたか?