tags:

views:

315

answers:

4

I'm looking for a C++ library that can parse 32-bit and 64-bit Mach-O binary format. I don't need anything fancy, just a disassembly and splitting the file into its sections, so no decompilation, name demangling and so on.

I know I can either rip open any existing disassembler or craft my own binary parsers using the format specification from Apple, but I was kind of hoping not having to go that far, especially if someone else has done the work for me.

Many thanks!

A: 

Get the Darwin (Mac OS X kernel) source code, I guarantee somewhere in there they've got a parser for Mach-O binaries.

Paul Betts
It'd be better to read the source to the disassembler.http://opensource.apple.com/source/cctools/cctools-750/otool/Not quite a library, though.
alex strange
+2  A: 

You can start with the open-source class-dump tool (http://www.codethecode.com/projects/class-dump/). It can read both 32 and 64 bits Mach-o binaries, and is known to have a decent parser.

Laurent Etiemble
+1  A: 

Try playing around with the command-line tool otool; it sounds like it does what you want. You could call it from C code with system(), etc.

Vincent Gable
A: 

Try this: MachOView It is still in developing stage, but hopefully becomes a powerful tool soon.

psaghelyi