MachOBinaryFile Class Reference

#include <loader/MachOBinaryFile.h>

Inheritance diagram for MachOBinaryFile:

BinaryFile List of all members.

Detailed Description

Definition at line 58 of file MachOBinaryFile.h.

Public Member Functions

virtual void AddSymbol (ADDRESS uNative, const char *pName)
virtual void Close ()
virtual bool DisplayDetails (const char *fileName, FILE *f=stdout)
virtual ADDRESS GetAddressByName (const char *name, bool bNoTypeOK=false)
DWord getDelta ()
virtual std::list< const char * > getDependencyList ()
virtual const char * GetDynamicProcName (ADDRESS uNative)
virtual ADDRESS GetEntryPoint ()
virtual std::list< SectionInfo * > & GetEntryPoints (const char *pEntry="main")
virtual const char * getFilename () const
virtual LOAD_FMT GetFormat () const
virtual ADDRESS getImageBase ()
virtual size_t getImageSize ()
virtual MACHINE GetMachine () const
virtual ADDRESS GetMainEntryPoint ()
virtual std::map< std::string,
ObjcModule > & 
getObjcModules ()
virtual std::map< ADDRESS,
std::string > & 
getSymbols ()
virtual bool IsDynamicLinkedProc (ADDRESS uNative)
virtual bool isLibrary () const
 MachOBinaryFile ()
virtual bool Open (const char *sName)
virtual int readNative1 (ADDRESS a)
virtual int readNative2 (ADDRESS a)
virtual int readNative4 (ADDRESS a)
virtual QWord readNative8 (ADDRESS a)
virtual float readNativeFloat4 (ADDRESS a)
virtual double readNativeFloat8 (ADDRESS a)
virtual const char * SymbolByAddress (ADDRESS dwAddr)
virtual void UnLoad ()
virtual ~MachOBinaryFile ()

Protected Member Functions

int machORead2 (short *ps) const
int machORead4 (int *pi) const
virtual bool RealLoad (const char *sName)

Private Member Functions

void findJumps (ADDRESS curr)
bool PostLoad (void *handle)

Private Attributes

char * base
std::map< ADDRESS, std::string > dlprocs
ADDRESS entrypoint
mach_headerheader
ADDRESS loaded_addr
unsigned loaded_size
const char * m_pFileName
std::map< ADDRESS, std::string > m_SymA
std::map< std::string, ObjcModulemodules


Constructor & Destructor Documentation

MachOBinaryFile::MachOBinaryFile  ) 
 

Definition at line 44 of file MachOBinaryFile.cpp.

MachOBinaryFile::~MachOBinaryFile  )  [virtual]
 

Definition at line 47 of file MachOBinaryFile.cpp.

References BinaryFile::m_iNumSections, and BinaryFile::m_pSections.


Member Function Documentation

void MachOBinaryFile::AddSymbol ADDRESS  uNative,
const char *  pName
[virtual]
 

Reimplemented from BinaryFile.

Definition at line 398 of file MachOBinaryFile.cpp.

References m_SymA.

void MachOBinaryFile::Close  )  [virtual]
 

Implements BinaryFile.

Definition at line 61 of file MachOBinaryFile.cpp.

References UnLoad().

bool MachOBinaryFile::DisplayDetails const char *  fileName,
FILE *  f = stdout
[virtual]
 

Reimplemented from BinaryFile.

Definition at line 403 of file MachOBinaryFile.cpp.

void MachOBinaryFile::findJumps ADDRESS  curr  )  [private]
 

ADDRESS MachOBinaryFile::GetAddressByName const char *  name,
bool  bNoTypeOK = false
[virtual]
 

Reimplemented from BinaryFile.

Definition at line 384 of file MachOBinaryFile.cpp.

References m_SymA.

Referenced by GetMainEntryPoint().

DWord MachOBinaryFile::getDelta  ) 
 

Definition at line 525 of file MachOBinaryFile.cpp.

References base, and loaded_addr.

std::list< const char * > MachOBinaryFile::getDependencyList  )  [virtual]
 

Implements BinaryFile.

Definition at line 520 of file MachOBinaryFile.cpp.

const char * MachOBinaryFile::GetDynamicProcName ADDRESS  uNative  )  [virtual]
 

Reimplemented from BinaryFile.

Definition at line 490 of file MachOBinaryFile.cpp.

References dlprocs.

ADDRESS MachOBinaryFile::GetEntryPoint  )  [virtual]
 

Implements BinaryFile.

Definition at line 74 of file MachOBinaryFile.cpp.

References entrypoint.

std::list< SectionInfo * > & MachOBinaryFile::GetEntryPoints const char *  pEntry = "main"  )  [virtual]
 

Implements BinaryFile.

Definition at line 65 of file MachOBinaryFile.cpp.

virtual const char* MachOBinaryFile::getFilename  )  const [inline, virtual]
 

Implements BinaryFile.

Definition at line 70 of file MachOBinaryFile.h.

References m_pFileName.

LOAD_FMT MachOBinaryFile::GetFormat  )  const [virtual]
 

Implements BinaryFile.

Definition at line 495 of file MachOBinaryFile.cpp.

References LOADFMT_MACHO.

ADDRESS MachOBinaryFile::getImageBase  )  [virtual]
 

Implements BinaryFile.

Definition at line 510 of file MachOBinaryFile.cpp.

References loaded_addr.

size_t MachOBinaryFile::getImageSize  )  [virtual]
 

Implements BinaryFile.

Definition at line 515 of file MachOBinaryFile.cpp.

References loaded_size.

MACHINE MachOBinaryFile::GetMachine  )  const [virtual]
 

Implements BinaryFile.

Definition at line 500 of file MachOBinaryFile.cpp.

References MACHINE_PPC.

ADDRESS MachOBinaryFile::GetMainEntryPoint  )  [virtual]
 

Implements BinaryFile.

Definition at line 79 of file MachOBinaryFile.cpp.

References GetAddressByName(), and NO_ADDRESS.

virtual std::map<std::string, ObjcModule>& MachOBinaryFile::getObjcModules  )  [inline, virtual]
 

Reimplemented from BinaryFile.

Definition at line 110 of file MachOBinaryFile.h.

References modules.

virtual std::map<ADDRESS, std::string>& MachOBinaryFile::getSymbols  )  [inline, virtual]
 

Reimplemented from BinaryFile.

Definition at line 109 of file MachOBinaryFile.h.

References m_SymA.

virtual bool MachOBinaryFile::IsDynamicLinkedProc ADDRESS  uNative  )  [inline, virtual]
 

Reimplemented from BinaryFile.

Definition at line 106 of file MachOBinaryFile.h.

References dlprocs.

bool MachOBinaryFile::isLibrary  )  const [virtual]
 

Implements BinaryFile.

Definition at line 505 of file MachOBinaryFile.cpp.

int MachOBinaryFile::machORead2 short *  ps  )  const [protected]
 

Definition at line 409 of file MachOBinaryFile.cpp.

Referenced by machORead4(), and readNative2().

int MachOBinaryFile::machORead4 int *  pi  )  const [protected]
 

Definition at line 416 of file MachOBinaryFile.cpp.

References machORead2().

Referenced by readNative4().

bool MachOBinaryFile::Open const char *  sName  )  [virtual]
 

Implements BinaryFile.

Definition at line 56 of file MachOBinaryFile.cpp.

bool MachOBinaryFile::PostLoad void *  handle  )  [private, virtual]
 

Implements BinaryFile.

Definition at line 372 of file MachOBinaryFile.cpp.

int MachOBinaryFile::readNative1 ADDRESS  a  )  [virtual]
 

Reimplemented from BinaryFile.

Definition at line 425 of file MachOBinaryFile.cpp.

References BinaryFile::GetSectionInfo(), BinaryFile::GetSectionInfoByAddr(), SectionInfo::uHostAddr, and SectionInfo::uNativeAddr.

int MachOBinaryFile::readNative2 ADDRESS  a  )  [virtual]
 

Reimplemented from BinaryFile.

Definition at line 434 of file MachOBinaryFile.cpp.

References BinaryFile::GetSectionInfoByAddr(), machORead2(), SectionInfo::uHostAddr, and SectionInfo::uNativeAddr.

int MachOBinaryFile::readNative4 ADDRESS  a  )  [virtual]
 

Reimplemented from BinaryFile.

Definition at line 443 of file MachOBinaryFile.cpp.

References BinaryFile::GetSectionInfoByAddr(), machORead4(), SectionInfo::uHostAddr, and SectionInfo::uNativeAddr.

Referenced by readNative8(), readNativeFloat4(), and readNativeFloat8().

QWord MachOBinaryFile::readNative8 ADDRESS  a  )  [virtual]
 

Reimplemented from BinaryFile.

Definition at line 452 of file MachOBinaryFile.cpp.

References readNative4().

float MachOBinaryFile::readNativeFloat4 ADDRESS  a  )  [virtual]
 

Reimplemented from BinaryFile.

Definition at line 467 of file MachOBinaryFile.cpp.

References readNative4().

double MachOBinaryFile::readNativeFloat8 ADDRESS  a  )  [virtual]
 

Reimplemented from BinaryFile.

Definition at line 475 of file MachOBinaryFile.cpp.

References readNative4().

bool MachOBinaryFile::RealLoad const char *  sName  )  [protected, virtual]
 

Implements BinaryFile.

Definition at line 91 of file MachOBinaryFile.cpp.

References BMMH, header, LC_SEGMENT, LC_SYMTAB, m_pFileName, MH_MAGIC, NO_ADDRESS, NULL, S_SYMBOL_STUBS, SECT_OBJC_MODULES, SECT_OBJC_REFS, SECT_OBJC_STRINGS, SECT_OBJC_SYMBOLS, and SECTION_TYPE.

const char * MachOBinaryFile::SymbolByAddress ADDRESS  dwAddr  )  [virtual]
 

Reimplemented from BinaryFile.

Definition at line 377 of file MachOBinaryFile.cpp.

References m_SymA.

void MachOBinaryFile::UnLoad  )  [virtual]
 

Implements BinaryFile.

Definition at line 368 of file MachOBinaryFile.cpp.

Referenced by Close().


Member Data Documentation

char* MachOBinaryFile::base [private]
 

Definition at line 121 of file MachOBinaryFile.h.

Referenced by getDelta().

std::map<ADDRESS, std::string> MachOBinaryFile::dlprocs [private]
 

Definition at line 125 of file MachOBinaryFile.h.

Referenced by GetDynamicProcName(), and IsDynamicLinkedProc().

ADDRESS MachOBinaryFile::entrypoint [private]
 

Definition at line 123 of file MachOBinaryFile.h.

Referenced by GetEntryPoint().

struct mach_header* MachOBinaryFile::header [private]
 

Definition at line 120 of file MachOBinaryFile.h.

Referenced by RealLoad().

ADDRESS MachOBinaryFile::loaded_addr [private]
 

Definition at line 123 of file MachOBinaryFile.h.

Referenced by getDelta(), and getImageBase().

unsigned MachOBinaryFile::loaded_size [private]
 

Definition at line 124 of file MachOBinaryFile.h.

Referenced by getImageSize().

const char* MachOBinaryFile::m_pFileName [private]
 

Definition at line 122 of file MachOBinaryFile.h.

Referenced by getFilename(), and RealLoad().

std::map<ADDRESS, std::string> MachOBinaryFile::m_SymA [private]
 

Definition at line 125 of file MachOBinaryFile.h.

Referenced by AddSymbol(), GetAddressByName(), getSymbols(), and SymbolByAddress().

std::map<std::string, ObjcModule> MachOBinaryFile::modules [private]
 

Definition at line 126 of file MachOBinaryFile.h.

Referenced by getObjcModules().


The documentation for this class was generated from the following files:
Generated on Tue Sep 19 21:18:43 2006 for Boomerang by  doxygen 1.4.6