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 32.283.591 Times

ELFIO 1.0.3

  Date Added: October 13, 2010  |  Visits: 1.238


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
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  
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  
3D Graphic Tools  -  Ansilove/PHP 1.03
Ansilove/PHP is a set of tools to convert ANSi and artscene related file formats into PNG images, supporting ANSi (.ANS), BiNARY (.BIN), and ADF (.ADF) formats. Ansilove/PHP project includes an all purposes command line converter, along with a...
133.12 KB  
Linux Software  -  wpCache® WordPress HTTP Cache 1.9
wpCache® is a high-performance, distributed object, caching system application, generic in nature, but intended for use in speeding up dynamic web applications, by decreasing database load time. wpCache® decreases dramatically the page...
3.51 MB  
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  
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  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB