- Notifications
You must be signed in to change notification settings - Fork46
Lightweight elf binary parser with no external dependencies - Sections, Symbols, Relocations, Segments
License
finixbit/elf-parser
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Lightweight elf binary parser with no external dependencies - Sections, Symbols, Relocations, Segments
No dependencies
parse sections header table from elf binary and return vector of section_t below
typedefstruct {int section_index =0; std::intptr_t section_offset, section_addr; std::string section_name; std::string section_type;int section_size, section_ent_size, section_addr_align;}section_t;
get elf sections using elf-parser
#include<elf-parser.h>elf_parser::Elf_parserelf_parser(executable_path);std::vector<elf_parser::section_t> secs = elf_parser.get_sections();
seeexample
parse program header table from elf binary and return vector of segment_t below
typedefstruct { std::string segment_type, segment_flags;long segment_offset, segment_virtaddr, segment_physaddr, segment_filesize, segment_memsize;int segment_align;}segment_t;
get elf segments using elf-parser
#include<elf-parser.h>elf_parser::Elf_parserelf_parser(executable_path);std::vector<elf_parser::segment_t> segs = elf_parser.get_segments();
seeexample
parse symbols table from elf binary and return vector of symbol_t below
typedefstruct { std::string symbol_index; std::intptr_t symbol_value;int symbol_num =0, symbol_size =0; std::string symbol_type, symbol_bind, symbol_visibility, symbol_name, symbol_section; }symbol_t;
get elf symbols using elf-parser
#include<elf-parser.h>elf_parser::Elf_parserelf_parser(executable_path);std::vector<elf_parser::symbol_t> syms = elf_parser.get_symbols();
seeexample
parse relocations with plt address from elf binary and return vector of relocation_t below
typedefstruct { std::intptr_t relocation_offset, relocation_info, relocation_symbol_value; std::string relocation_type, relocation_symbol_name, relocation_section_name; std::intptr_t relocation_plt_address;}relocation_t;
get elf relocations using elf-parser
#include<elf-parser.h>elf_parser::Elf_parserelf_parser(executable_path);std::vector<elf_parser::relocation_t> relocs = elf_parser.get_relocations();
seeexample
amd64
About
Lightweight elf binary parser with no external dependencies - Sections, Symbols, Relocations, Segments
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.