• Stars
    star
    927
  • Rank 49,282 (Top 1.0 %)
  • Language
    Rust
  • License
    zlib License
  • Created about 4 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ELF visualizer. Generates HTML files from ELF binaries.

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. What does it look like?

    This is what 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. Upcoming features?

    • Better text renderer to fix bad performance when opening big files

    • Ability to tune the width instead of hardcoded 16 bytes

    • Visualization of virtual memory mappings

    • Dark theme

    • Highlight bytes in ASCII column

  6. Addendum