Expand description
Support for reading AIX XCOFF files.
Traits are used to abstract over the difference between 32-bit and 64-bit XCOFF.
The primary trait for this is FileHeader
.
§High level API
XcoffFile
implements the Object
trait for XCOFF files.
XcoffFile
is parameterised by FileHeader
to allow reading both 32-bit and
64-bit XCOFF. There are type aliases for these parameters (XcoffFile32
and
XcoffFile64
).
§Low level API
The FileHeader
trait can be directly used to parse both xcoff::FileHeader32
and xcoff::FileHeader64
.
§Example for low level API
use object::xcoff;
use object::read::xcoff::{FileHeader, SectionHeader, Symbol};
use std::error::Error;
use std::fs;
/// Reads a file and displays the name of each section and symbol.
fn main() -> Result<(), Box<dyn Error>> {
let data = fs::read("path/to/binary")?;
let mut offset = 0;
let header = xcoff::FileHeader64::parse(&*data, &mut offset)?;
let aux_header = header.aux_header(&*data, &mut offset)?;
let sections = header.sections(&*data, &mut offset)?;
let symbols = header.symbols(&*data)?;
for section in sections.iter() {
println!("{}", String::from_utf8_lossy(section.name()));
}
for (_index, symbol) in symbols.iter() {
println!("{}", String::from_utf8_lossy(symbol.name(symbols.strings())?));
}
Ok(())
}
Modules§
- comdat 🔒XCOFF doesn’t support the COMDAT section.
- file 🔒
- section 🔒
- segment 🔒TODO: Support the segment for XCOFF when auxiliary file header and loader section is ready.
- symbol 🔒
Structs§
- The table of section headers in an XCOFF file.
- An iterator for symbol entries in an XCOFF file.
- A table of symbol entries in an XCOFF file.
- A COMDAT section group in a
XcoffFile
. - An iterator for the COMDAT section groups in a
XcoffFile
. - An iterator for the sections in a COMDAT section group in a
XcoffFile
. - A partially parsed XCOFF file.
- An iterator for the relocations in an
XcoffSection
. - A section in an
XcoffFile
. - An iterator for the sections in an
XcoffFile
. - A loadable section in an
XcoffFile
. - An iterator for the segments in an
XcoffFile
. - A symbol in an
XcoffFile
. - An iterator for the symbols in an
XcoffFile
. - A symbol table in an
XcoffFile
.
Traits§
- A trait for generic access to
xcoff::AuxHeader32
andxcoff::AuxHeader64
. - A trait for generic access to
xcoff::CsectAux32
andxcoff::CsectAux64
. - A trait for generic access to
xcoff::FileAux32
andxcoff::FileAux64
. - A trait for generic access to
xcoff::FileHeader32
andxcoff::FileHeader64
. - A trait for generic access to
xcoff::Rel32
andxcoff::Rel64
. - A trait for generic access to
xcoff::SectionHeader32
andxcoff::SectionHeader64
. - A trait for generic access to
xcoff::Symbol32
andxcoff::Symbol64
.
Type Aliases§
- A COMDAT section group in a
XcoffFile32
. - A COMDAT section group in a
XcoffFile64
. - An iterator for the COMDAT section groups in a
XcoffFile32
. - An iterator for the COMDAT section groups in a
XcoffFile64
. - An iterator for the sections in a COMDAT section group in a
XcoffFile32
. - An iterator for the sections in a COMDAT section group in a
XcoffFile64
. - A 32-bit XCOFF object file.
- A 64-bit XCOFF object file.
- An iterator for the relocations in an
XcoffSection32
. - An iterator for the relocations in an
XcoffSection64
. - A section in an
XcoffFile32
. - A section in an
XcoffFile64
. - An iterator for the sections in an
XcoffFile32
. - An iterator for the sections in an
XcoffFile64
. - A segment in an
XcoffFile32
. - A segment in an
XcoffFile64
. - An iterator for the segments in an
XcoffFile32
. - An iterator for the segments in an
XcoffFile64
. - A symbol in an
XcoffFile32
. - A symbol in an
XcoffFile64
. - An iterator for the symbols in an
XcoffFile32
. - An iterator for the symbols in an
XcoffFile64
. - A symbol table in an
XcoffFile32
. - A symbol table in an
XcoffFile64
.