From d18527e32e70aeb2a2561625a9e58a26908e6dc3 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Thu, 27 Jul 2017 23:25:37 +0200 Subject: [PATCH] export class, data, elfversion, osabi and abiversion ident header fields --- README.md | 7 +++++++ elf.c | 6 ++++++ elf.h | 7 +++++++ 3 files changed, 20 insertions(+) diff --git a/README.md b/README.md index 6f1ebf9..46a7b51 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,13 @@ struct Fhdr { /* Private */ ... + /* ELF Identification */ + uint8_t class; /* File class */ + uint8_t data; /* Data encoding */ + uint8_t elfversion; /* File version */ + uint8_t osabi; /* Operating system/ABI identification */ + uint8_t abiversion; /* ABI version */ + /* ELF Header */ uint16_t type; uint16_t machine; diff --git a/elf.c b/elf.c index 4e7e8e9..eb8824d 100644 --- a/elf.c +++ b/elf.c @@ -509,6 +509,12 @@ readident(FILE *f, Fhdr *fp) if (i == nelem(data)) return -1; + fp->class = buf[EI_CLASS]; + fp->data = buf[EI_DATA]; + fp->elfversion = buf[EI_VERSION]; + fp->osabi = buf[EI_OSABI]; + fp->abiversion = buf[EI_ABIVERSION]; + return p - buf; } diff --git a/elf.h b/elf.h index 9f23411..f7a20ac 100644 --- a/elf.h +++ b/elf.h @@ -16,6 +16,13 @@ struct Fhdr { int (*readelfphdr)(FILE*, Fhdr*); int (*readelfstrndx)(FILE*, Fhdr*); + /* ELF Identification */ + uint8_t class; /* File class */ + uint8_t data; /* Data encoding */ + uint8_t elfversion; /* File version */ + uint8_t osabi; /* Operating system/ABI identification */ + uint8_t abiversion; /* ABI version */ + /* ELF Header */ uint16_t type; uint16_t machine;