Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 29.545.093 Times

ELFIO 1.0.3

  Date Added: October 13, 2010  |  Visits: 1.133


Report Broken Link
Printer Friendly Version

Product Homepage
Download (82 downloads)

ELFIO is a C++ library for reading and generating files in the ELF binary format. This library is unique and not based on any other product. It is also platform independent. The library uses standard ANSI C++ constructions and runs on a wide variety of architectures. While the librarys implementation does make your work easier: a basic knowledge of the ELF binary format is required. Information about ELF is included in the TIS (Tool Interface Standards) documentation you received with the librarys source code. The ELFIO library consists of two independent parts: ELF File Reader (IELFI) and ELF Producer (IELFO). Each is represented by its own set of interfaces. The library does not contain any classes that need to be explicitly instantiated. ELFIO itself provides the interfaces that are used to access the librarys functionality. To make the program recognize all ELFIO interface classes, the ELFIO.h header file is needed. This header file defines all standard definitions from the TIS documentation. #include < ELFIO.h > This chapter will explain how to work with the reader component of the ELFIO library. The first step is to get a pointer onto the ELF File Reader: IELFI* pReader; ELFIO::GetInstance()->CreateELFI( &pReader ); Now, that there is a pointer on the IELFI interface: initialize the object by loading the ELF file: char* filename = "file.o"; pReader->Load( filename ); From here, there is access to the ELF header. This makes it possible to request file parameters such as encoding, machine type, entry point, etc. To get the encoding of the file use: unsigned char encoding = pReader->GetEncoding(); Please note: standard types and constants from the TIS document are defined in the ELFTypes.h header file. This file is included automatically into the project. For example: ELFDATA2LSB and ELFDATA2MSB constants define a value for little and big endian encoding. ELF binary files consist of several sections. Each section has its own responsibility: some contain executable code; others describe program dependencies; others symbol tables and so on. See the TIS documentation for a full description of each section. To see how many sections the ELF file contains, including their names and sizes, is demonstated in the following code: int nSecNo = pReader->GetSectionsNum(); for ( int i = 0; i < nSecNo; ++i ) { // For all sections const IELFISection* pSec = pReader->GetSection( i ); std::cout << pSec->GetName() << << pSec->GetSize() << std::endl; pSec->Release(); } First, the number of sections are received; next, a pointer on the IELFISection interface. Using this interface, access is gained to the different section attributes: size, type, flags and address. To get a buffer that contains the sections bytes use the GetData() member function of this interface. See the IELFISection declaration for a full description of the IELFISection interface. After the section data is received through the GetData() function call, the data can be manipulated. There are special sections that provide information in predefined forms. The ELFIO library processes these sections. The library provides a set of section readers that understand these predefined formats and how to process their data. The ELFIO.h header file currently defines the types of readers as: enum ReaderType { ELFI_STRING, // Strings reader ELFI_SYMBOL, // Symbol table reader ELFI_RELOCATION, // Relocation table reader ELFI_NOTE, // Notes reader ELFI_DYNAMIC, // Dynamic section reader ELFI_HASH // Hash }; How to use the symbol table reader will be demonstated in the following example: First, get the symbol section: const IELFISection* pSec = pReader->GetSection( .symtab ); Second, create a symbol section reader: IELFISymbolTable* pSymTbl = 0; pReader->CreateSectionReader( IELFI::ELFI_SYMBOL, pSec, (void**)&pSymTbl ); And finally, use the section reader to process all entries (print operations are omitted): std::string name; Elf32_Addr value; Elf32_Word size; unsigned char bind; unsigned char type; Elf32_Half section; int nSymNo = pSymTbl->GetSymbolNum(); if ( 0 < nSymNo ) { for ( int i = 0; i < nSymNo; ++i ) { pSymTbl->GetSymbol( i, name, value, size, bind, type, section ); } } pSymTbl->Release(); pSec->Release(); All interfaces from the ELFIO library should be freed after use. Each interface has a Release() function. It is not enough to only free the high level interface because one of the sections or readers will still be held and its resources will not be cleared. The interfaces are freed immediately after their use, in this example we will free only the pReader object: pReader->Release(); The source code for the ELF Dumping Utility can be found in the "Examples" directory; included there are more examples on how to use different ELFIO reader interfaces. Whats New in This Release: - Fixes endian conversion in the ELFIRelocation and ELFINote sections adapters.. Get ELFIO at Fast, secure and free downloads from the largest Open Source applications and software directory. ELFIO - ELF (Executable and Linkable Format) reader and producer implemented as a C++ library.

Requirements: No special requirements
Platforms: Linux
Keyword: Assembler Tools Elfio Executable And Linkable Format File Ielfi Interfaces Library Programming Reader Section Sections Tis
Users rating: 0/10

License: Freeware Size: 307.2 KB
More Reviews or Write Review

Libraries  -  ColorWheel Wizard and Control Tools for WPF and Silverlight 1.0 Beta
ColorWheel Wizard and Control Tools for WPF and Silverlight was designed to help developers in any application which edits colors. You can use common patters to create colors like complimentary colors and also compare W3C color values. You can...
Libraries  -  Xephyrus File Upload Tag Library 1.0
Xephyrus File Upload Tag Library provides an easy way to process files uploaded from a web form from within JSP pages. It is a tag library wrapper around the Jakarta Commons FileUpload utility. Whats New in This Release: - added keepPath...
25.6 KB  
3D Graphic Tools  -  g3d Graphic Tools 1.2
g3d Graphic Tools project consists of a XML file format and generic development tools for games. The problem is that often as a games developer you need to work with many 3d editing tools and rendering engines, and there should be an easy and...
2.3 MB  
Libraries  -  GNOME Structured File Library 1.14.5
GNOME Structured File Library is a utility library for reading and writing structured file formats. Support for MS OLE2 streams is complete, as is zip import. There is also support for document metadata and some initial work on decompressing VBA...
716.8 KB  
Libraries  -  Stat::lsMode 0.50
Stat::lsMode Perl module can format file modes like the ls -l command does. SYNOPSIS use Stat::lsMode; $mode = (stat $file)[2]; $permissions = format_mode($mode); # $permissions is now something like `drwxr-xr-x $permissions =...
4.1 KB  
MS Office Add-Ins  -  ifree Image to Pdf Converter 1.2
iFree Image to Pdf Converter is a easyt-to-use image to pdf converter software which can convert bmp,jpg,gif,png,tif and tiff image file to pdf file.
1.68 MB  
Programming  -  Xceed Zip for .NET 2.0
Xceed Zip for .NET is a data compression and all-purpose file manipulation class library for the Microsoft .NET framework. It provides flexible zip, unzip and streaming data compression capabilities for .NET applications. The library includes an...
18.7 MB  
Programming  -  Pasmo
Pasmo project is a Z80 cross assembler, written in standard C++ that compiles easily in multiple platforms. Actually can generate object code in the following formats: raw binary, Intel HEX, PRL for CP/M Plus RSX, Plus3Dos (Spectrum +3 disk), TAP,...
122.88 KB  
Programming  -  libpff 20110413Alpha
Library and tools to access the Personal Folder File (PFF) and the Offline Folder File (OFF) format. PFF is used in PAB (Personal Address Book), PST (Personal Storage Table) and OST (Offline Storage Table) files.
1.05 MB  
Windows Software  -  Binary Viewer
Binary Viewer is a free windows utility allowing you to open and view any file located on your computer regardless of format file was saved. It can display data in decimal, octal, hexadecimal and text (ASCII or Unicode) formats. Program supports...
767.6 KB  
Linux Software  -  Polling Autodialer Software 3.4
ICTBroadcast Auto Dialer software has a survey campaign for telephone surveys and polls. This auto dialer software automatically dials a list of numbers and asks them a set of questions that they can respond to, by using their telephone keypad....
488 B  
Linux Software  -  Total Video Converter Mac Free 3.5.5
Total Video Converter Mac Free developed by EffectMatrix Ltd is the official legal version of Total Video Converter which was a globally recognized brand since 2006. Total Video Converter Mac Free is a free but powerful all-in-one video...
17.7 MB  
Linux Software  -  Skeith mod_log_sql Analyzer 2.10beta2
Skeith is a php based front end for analyzing logs for Apache using mod_log_sql.
47.5 KB  
Linux Software  -  SLAX 6.0+
Slax is a modern, portable, small and fast Linux operating system with a modular approach and outstanding design. Despite its small size, Slax provides a wide collection of pre-installed software for daily use, including a well organized graphical...
190 KB  
Linux Software  -  GTK+ 2.5
GTK+, which stands for the GIMP Toolkit, is a library for creating graphical user interfaces for the X Window System. It is designed to be small, efficient, and flexible. GTK+ is written in C with a very object-oriented approach. Language bindings...
60 MB  
Programming  -  FLEX-db Digital Asset Manager 3.0.9
FLEX-db - an enterprise Digital Asset Manager (DAM). It ingests and links metadata with files, creates thumbnails, and processes files using business rules. FLEX-db has a JSP client, Java app server for file input and output and an EJB metadata...
21.57 MB  
Programming  -  Libicom 0.9.0
The libicom library is a character based dynamicly linked library for Linux. It is used to remotely control the Icom IC-R8500 wide band receiver via an RS232 link. All call and return parameters to the control functions are character string based....
20.48 KB  
Programming  -  dotdesktop 0.3
Dotdesktop library provides ability to parse desktop entry file and access the information in a convenient way. Desktop entry file format is defined by, it is used to describe information about an application such as the name and...
327.68 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  libyasl 0.2
Libyasl is a C++ class library to easily realize TCP/UDP/Multicast clientsand servers in IPv4 and IPv6 environments under GNU/Linux systems.
143.36 KB