Source code of mentebinaria.com.br (can be turned into a small CMS in the future)
mentebinaria / elfparser-ng Goto Github PK
View Code? Open in Web Editor NEWMultiplatform CLI and GUI tool to show information about ELF files
License: Other
Multiplatform CLI and GUI tool to show information about ELF files
License: Other
I suggest the following changes to menu options:
Find Table Section
to Find Section
under Edit
.Find Table Symbols
to Find Symbol
under Edit
.Find Table Programs
to Find Segment
under Edit
.Edit -> Hex -> Goto...
back to Edit -> Goto...
.git clone https://github.com/mentebinaria/elfparser-ng.git
cd elfparser-ng
sed -i 's/"-g -DDEBUG"/"-fsanitize=address -static-libasan -g"/g' CMakeLists.txt
mkdir build
cd build
cmake ../ -Dqt=OFF -Ddebug=ON
make -j 8
./elfparser-cli-ng -f poc -p
g++ (Ubuntu 11.2.0-19ubuntu1) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
AddressSanitizer:DEADLYSIGNAL
=================================================================
==3665745==ERROR: AddressSanitizer: SEGV on unknown address 0x7ff7d2329810 (pc 0x556d6e1e7b0e bp 0x7ffd255ba5a0 sp 0x7ffd255ba300 T0)
==3665745==The signal is caused by a READ memory access.
#0 0x556d6e1e7b0e in AbstractProgramHeader::getType() const /home/manny/elfparser-ng/src/abstract_programheader.cpp:140
#1 0x556d6e22727c in AbstractSegments::makeSegmentFromProgramHeader(AbstractProgramHeader const&) /home/manny/elfparser-ng/src/abstract_segments.cpp:81
#2 0x556d6e179549 in ProgramHeaders::extractSegments(AbstractSegments&) /home/manny/elfparser-ng/src/programheaders.cpp:30
#3 0x556d6e104a2d in ELFParser::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/manny/elfparser-ng/src/elfparser.cpp:170
#4 0x556d6e0c9945 in do_parsing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, bool) /home/manny/elfparser-ng/src/main.cpp:92
#5 0x556d6dfea692 in main /home/manny/elfparser-ng/src/main.cpp:146
#6 0x7ff78863ed8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
#7 0x7ff78863ee3f in __libc_start_main_impl ../csu/libc-start.c:392
#8 0x556d6dff2d24 in _start (/home/manny/elfparser-ng/build/elfparser-cli-ng+0x7cd24)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/manny/elfparser-ng/src/abstract_programheader.cpp:140 in AbstractProgramHeader::getType() const
==3665745==ABORTING
AddressSanitizer:DEADLYSIGNAL
=================================================================
==3670699==ERROR: AddressSanitizer: SEGV on unknown address 0x7f8fb93c0555 (pc 0x562389a14f05 bp 0xffffffffffffff90 sp 0x7ffdf801f6b0 T0)
==3670699==The signal is caused by a READ memory access.
#0 0x562389a14f05 in DynamicSection::createDynamic(char const*, unsigned int, unsigned int, unsigned long, bool, bool, AbstractSegments const&) /home/manny/elfparser-ng/src/dynamicsection.cpp:105
#1 0x562389a61c58 in AbstractSegments::createDynamic() /home/manny/elfparser-ng/src/abstract_segments.cpp:99
#2 0x56238995aa35 in ELFParser::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/manny/elfparser-ng/src/elfparser.cpp:171
#3 0x56238991f945 in do_parsing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, bool) /home/manny/elfparser-ng/src/main.cpp:92
#4 0x562389840692 in main /home/manny/elfparser-ng/src/main.cpp:146
#5 0x7f895783bd8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
#6 0x7f895783be3f in __libc_start_main_impl ../csu/libc-start.c:392
#7 0x562389848d24 in _start (/home/manny/elfparser-ng/build/elfparser-cli-ng+0x7cd24)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/manny/elfparser-ng/src/dynamicsection.cpp:105 in DynamicSection::createDynamic(char const*, unsigned int, unsigned int, unsigned long, bool, bool, AbstractSegments const&)
==3670699==ABORTING
AddressSanitizer:DEADLYSIGNAL
=================================================================
==3671761==ERROR: AddressSanitizer: SEGV on unknown address 0x7fb9f536458b (pc 0x7fb9b1af0901 bp 0x000000000000 sp 0x7ffd13e3df18 T0)
==3671761==The signal is caused by a READ memory access.
#0 0x7fb9b1af0901 in memcpy (/lib/x86_64-linux-gnu/libc.so.6+0xc4901)
#1 0x7fb9b1ea6f93 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0x14bf93)
#2 0x7fb9b1ea7fdd in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0x14cfdd)
#3 0x55deda35b130 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*, unsigned long) /usr/include/c++/11/bits/basic_string.h:1443
#4 0x55deda35b130 in NoteSegment::NoteSegment(char const*, unsigned int, unsigned int, elf::section_type) /home/manny/elfparser-ng/src/segment_types/note_segment.cpp:83
#5 0x55deda310154 in AbstractSegments::generateSegments() /home/manny/elfparser-ng/src/abstract_segments.cpp:161
#6 0x55deda204a3d in ELFParser::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/manny/elfparser-ng/src/elfparser.cpp:172
#7 0x55deda1c9945 in do_parsing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, bool, bool) /home/manny/elfparser-ng/src/main.cpp:92
#8 0x55deda0ea692 in main /home/manny/elfparser-ng/src/main.cpp:146
#9 0x7fb9b1a55d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
#10 0x7fb9b1a55e3f in __libc_start_main_impl ../csu/libc-start.c:392
#11 0x55deda0f2d24 in _start (/home/manny/elfparser-ng/build/elfparser-cli-ng+0x7cd24)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/lib/x86_64-linux-gnu/libc.so.6+0xc4901) in memcpy
==3671761==ABORTING
poc : poc.zip
When you click a byte in the hex view, the Offset
address at the bottom does not update.
System: Ubuntu 22.04 (AppImage).
Help -> Quick Help
and Help -> Report Bug...
throw a Permission denied
error on console and don't work.
error in the button to load the binary elf
I had to install both FUSE and qtbase5-dev before running the AppImage on Linux (Ubuntu 22.04 64-bits). Fixed with:
sudo apt install fuse qtbase5-dev
Is this expected?
After installing both and trying to execute the AppImage binary, it says libicudata.so.71
is missing. It also complains about libicui18n.so.71
, and libicuuc.so.71
. Here's how I fixed it:
ln -s /usr/lib/x86_64-linux-gnu/libicudata.so.70.1 /usr/lib/x86_64-linux-gnu/libicudata.so.71
ln -s /usr/lib/x86_64-linux-gnu/libicui18n.so.70.1 /usr/lib/x86_64-linux-gnu/libicui18n.so.71
ln -s /usr/lib/x86_64-linux-gnu/libicuuc.so.70.1 /usr/lib/x86_64-linux-gnu/libicuuc.so.71
Then it runs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.