#elf #html #visualizer #binaries

app elfcat

ELF visualizer. Generates HTML files from ELF binaries.

3 releases

0.1.4 Jul 4, 2021
0.1.3 Jun 21, 2021
0.1.2 Jun 20, 2021
0.1.1 Jun 20, 2021
0.1.0 Jun 20, 2021

#97 in Visualization

Download history 281/week @ 2021-06-17 53/week @ 2021-06-24 45/week @ 2021-07-01 6/week @ 2021-07-08 14/week @ 2021-07-15 11/week @ 2021-07-22

115 downloads per month

Zlib license

86KB
2K SLoC

Rust 2K SLoC // 0.0% comments JavaScript 302 SLoC // 0.0% comments

elfcat - ELF visualizer. Generates HTML files from ELF binaries.

  1. How do I install and use it?

    $ cargo install elfcat
    $ elfcat path/to/file
    
  2. How does it look like?

    This is how the following small example ELF file looks like:

    http://ruslashev.github.io/elfcat/hello_world.html

    Steps to create it:

    $ cat hello_world.s
    global _start
    
    section .text
    _start:
        mov rax, 1
        mov rdi, 1
        mov rsi, msg
        mov rdx, len
        syscall
    
        mov rax, 60
        xor rdi, rdi
        syscall
    
    section .data
        msg db "Hello, world!", 0xA
        len equ $ - msg
    
    $ cat link.ld
    ENTRY(_start)
    
    SECTIONS {
        . = 0x10080; /* vm.mmap_min_addr + p_offset of first segment */
    
        .text : {
            * (.text)
        }
    
        .data : {
            * (.data)
        }
    }
    
    $ nasm hello_world.s -f elf64
    $ ld hello_world.o -o hello_world -n -T link.ld
    $ elfcat hello_world
    $ xdg-open hello_world.html
    
  3. Can I contribute?

    Of course!

  4. License?

    Zlib.

  5. When I try this on huge files, it slows down my browser!

    Sorry about that. There used to be a feature where segments and sections would be collapsed into a couple characters instead of showing full contents, but it was disabled because it:

    • broke when these would overlap

    • in a way, defeats the purpose: seeing specific bytes is a feature.

  6. Upcoming features?

    • Ability to tune the width instead of hardcoded 16 bytes

    • Visualization of virtual memory mappings

    • Dark theme

    • Highlight bytes in ASCII column

  7. Addendum

No runtime deps