Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kentnl/elf-extract-sections
Extract Data Verbatim from ELF Binaries
https://github.com/kentnl/elf-extract-sections
Last synced: 4 days ago
JSON representation
Extract Data Verbatim from ELF Binaries
- Host: GitHub
- URL: https://github.com/kentnl/elf-extract-sections
- Owner: kentnl
- License: other
- Created: 2009-05-02T21:10:33.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2015-09-29T14:22:37.000Z (about 9 years ago)
- Last Synced: 2023-08-20T22:55:49.209Z (about 1 year ago)
- Language: Perl
- Homepage:
- Size: 1.52 MB
- Stars: 7
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.mkdn
- Changelog: Changes
- Contributing: CONTRIBUTING.pod
- License: LICENSE
Awesome Lists containing this project
README
# NAME
ELF::Extract::Sections - Extract Raw Chunks of data from identifiable ELF Sections
# VERSION
version 1.001005
# SYNOPSIS
use ELF::Extract::Sections;
# Create an extractor object for foo.so
my $extractor = ELF::Extract::Sections->new( file => '/path/to/foo.so' );# Scan file for section data, returns a hash
my %sections = ${ $extractor->sections };# Retreive the section object for the comment section
my $data = $sections{.comment};# Print the stringified explanation of the section
print "$data";# Get the raw bytes out of the section.
print $data->contents # returns bytes# METHODS
## `new`
my $object = ELF::Extract::Sections->new( file => FILENAME );
Creates A new Section Extractor object with the default scanner
my $object = ELF::Extract::Sections->new( file => FILENAME , scanner => 'Objdump' )
Creates A new Section Extractor object with the specified scanner
## `sorted_sections`
my $sections = $object->sorted_sections( field => SORT_BY )
Returns an ArrayRef sorted by the SORT\_BY field, in the default order.
my $sections = $object->sorted_sections( field => SORT_BY, descending => DESCENDING );
Returns an ArrayRef sorted by the SORT\_BY field. May be Ascending or Descending depending on requirements.
### DESCENDING
Optional parameters. True for descending, False or absent for ascending.
### SORT\_BY
A String of the field to sort by. Valid options at present are
#### name
The Section Name
#### offset
The Sections offset relative to the start of the file.
#### size
The Size of the section.
# ATTRIBUTES
## `file`
Returns the file the section data is being created for.
## `sections`
Returns a HashRef of the available sections.
## `scanner`
Returns the name of the default scanner plug-in
# CAVEATS
- 1. Beta Software
This code is relatively new. It exists only as a best attempt at present until further notice. It
has proved as practical for at least one application, and this is why the module exists. However, it can't be
guaranteed it will work for whatever you want it to in all cases. Please report any bugs you find.- 2. Feature Incomplete
This only presently has a very bare-bones functionality, which should however prove practical for most purposes.
If you have any suggestions, please tell me via "report bugs". If you never seek, you'll never find.- 3. Humans
This code is written by a human, and like all human code, it sucks. There will be bugs. Please report them.
# DEBUGGING
This library uses [Log::Log4perl](https://metacpan.org/pod/Log::Log4perl). To see more verbose processing notices, do this:
use Log::Log4perl qw( :easy );
Log::Log4perl->easy_init($DEBUG);For convenience to make sure you don't happen to miss this fact, we never initialize Log4perl ourselves, so it will
spit the following message if you have not set it up:Log4perl: Seems like no initialization happened. Forgot to call init()?
To suppress this, just do
use Log::Log4perl qw( :easy );
I request however you **don't** do that for modules intended to be consumed by others without good cause.
# AUTHOR
Kent Fredric <[email protected]>
# COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by Kent Fredric <[email protected]>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.