public inbox for elfutils@sourceware.org
 help / color / mirror / Atom feed
From: Josh Stone <jistone@redhat.com>
To: elfutils-devel@sourceware.org
Subject: failed reading "Smallest x86 ELF Hello World"
Date: Thu, 28 Sep 2017 19:06:00 -0000	[thread overview]
Message-ID: <2c4070fd-23b1-1758-b8be-342bfe852cb6@redhat.com> (raw)

From http://timelessname.com/elfbin/

Elfutils completely fails to read the file:

$ eu-readelf --version
eu-readelf (elfutils) 0.169
Copyright [...]
$ eu-readelf -a hello
eu-readelf: failed reading 'hello': invalid file descriptor

It's not clear that we should care, since that page even says it's "a
completely corrupted x86 ELF Binary that still runs."  But since it's
good enough for the kernel to run it, I'd hope for *something* from tools.

It also seems weird to get the message "invalid file descriptor", from
ELF_E_INVALID_FILE, which makes it sound like more like EBADF.  The file
descriptor itself is fine - it just doesn't like the ELF within.
(DWARF_E_INVALID_FILE's message is just "invalid file".)


FWIW, binutils readelf does better:

$ readelf --version
GNU readelf version 2.27-24.fc26
Copyright [...]
$ readelf -a hello
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 48 69 20 57 6f 72 6c 64 0a
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            <unknown: 48>
  ABI Version:                       105
  Type:                              EXEC (Executable file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x8048080
  Start of program headers:          52 (bytes into file)
  Start of section headers:          309248 (bytes into file)
  Flags:                             0x80cd0000
  Size of this header:               22763 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         2
  Size of section headers:           40 (bytes)
  Number of section headers:         5
  Section header string table index: 4
readelf: hello: Error: Reading 0xc8 bytes extends past end of file for
section headers
readelf: hello: Error: Section headers are not available!

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x000000 0x08048000 0x08048000 0x000a2 0x000a2 R E 0x1000
  LOAD           0x0000a4 0x080490a4 0x080490a4 0x00009 0x00009  W
0x9007b900

There is no dynamic section in this file.

             reply	other threads:[~2017-09-28 19:06 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-28 19:06 Josh Stone [this message]
2017-10-04 18:55 ` Mark Wielaard
2017-10-04 18:57   ` [PATCH 1/2] libelf: Add ELF_E_INVALID_ELF error value Mark Wielaard
2017-10-04 18:57     ` [PATCH 2/2] libelf: Don't error out when sanity checking e_shoff if scncnt is zero Mark Wielaard
2017-10-13 15:09   ` failed reading "Smallest x86 ELF Hello World" Mark Wielaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2c4070fd-23b1-1758-b8be-342bfe852cb6@redhat.com \
    --to=jistone@redhat.com \
    --cc=elfutils-devel@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).