Crates.io | elfcat |
lib.rs | elfcat |
version | 0.1.8 |
source | src |
created_at | 2021-06-20 04:39:50.971886 |
updated_at | 2021-10-13 06:28:52.73573 |
description | ELF visualizer. Generates HTML files from ELF binaries. |
homepage | |
repository | https://github.com/ruslashev/elfcat |
max_upload_size | |
id | 412286 |
size | 91,382 |
elfcat - ELF visualizer. Generates HTML files from ELF binaries.
How do I install and use it?
$ cargo install elfcat
$ elfcat path/to/file
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
Can I contribute?
Of course!
License?
Zlib.
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
Addendum