Git Product home page Git Product logo

elf-info's Introduction

elf-info: ergonomic CLI ELF inspection tool

elf-info can inspect and display information about ELF binaries, the executable format mostly used on Linux. This CLI tools aims at being ergonomic, without the need of using two different commands (objdump and readelf) that have impossible to remember options.

elf-info commands and options are easy to remember yet short and easy to type. Efforts are made on the presentation of the data, using colors and ASCII tables.

For better ergonomics, you can set a ELF environment variable so not to have to repeat the file name on each command.

Quick and ergonomic disassembly

The fn subcommand is my favorite: give it a function’s name and its full pretty-formatted disassembly is displayed.

Disassembly of main

By passing --cfi you can superimpose call frame information (CFI):

Disassembly of main with CFI

Symbol tables

You can quickly list all symbols, and demangle the names.

List of all symbols

Pass --no-demangle for not demangling.
Pass -l / -g / -w / -d to only display local / global / weak / defined symbols.
Pass -t <TYPE> to filter by symbol type.
Pass -D to only display dynamic symbols.
Pass -f to filter by symbol name using a regular expression.

Sections

List all sections

List of all sections

Show specific section content

One specific ELF section

String table sections

For some type of sections, elf-info is able to interpret its content and display it in a more usable way. For example, for a table of strings, all strings are listed. You can add the option -x or --hexdump to always display a hexdump.

.strtab section

.eh_frame_hdr section

In the same way, elf-info can pretty print the content of .eh_frame_hdr.

.strtab section

ELF header

ELF header

Program headers

Program headers

Clear and structured exception-handling information

Exception-handling information

Quickly find EH information for a specific symbol with -s:

Exception-handling information for a symbol

elf-info's People

Contributors

kevin-lesenechal avatar argonianaccount avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.