Skip to content

Commit

Permalink
add readme
Browse files Browse the repository at this point in the history
  • Loading branch information
ruslashev committed Jun 20, 2021
1 parent 8353367 commit 1336137
Showing 1 changed file with 82 additions and 0 deletions.
82 changes: 82 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
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

0 comments on commit 1336137

Please sign in to comment.