Name ELF::Extract::Sections - Extract Raw Chunks of data from identifiable ELF Sections Caveats 1. Beta Software This code is relatively new. It exists only as a best attempt at present until further notice. It has proven 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 barebones 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. 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 ( file => FILENAME ) Creates A new Section Extractor object -> file Returns the file the section data is being created for. -> sections Returns a HashRef of the available sections. -> sorted_sections ( field => SORT_BY ) -> 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 absensent 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. Debugging This library uses 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 ourself, 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, "" Bugs Please report any bugs or feature requests to "bug-elf-extract-sections at rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. Support You can find documentation for this module with the perldoc command. perldoc ELF::Extract::Sections You can also look for information at: * RT: CPAN's request tracker * AnnoCPAN: Annotated CPAN documentation * CPAN Ratings * Search CPAN Acknowledgements Copyright & License Copyright 2009 Kent Fredric, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.