Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Some improvements to Apple's otool.
C C++ Other
branch: master


__________________________________       _____   __________
__  __ \__  __/_  __ \_  __ \__  /       ___  | / /_  ____/
_  / / /_  /  _  / / /  / / /_  / _________   |/ /_  / __  
/ /_/ /_  /   / /_/ // /_/ /_  /___/_____/  /|  / / /_/ /  
\____/ /_/    \____/ \____/ /_____/      /_/ |_/  \____/   

This is a fork from Apple's otool with my personal modifications to otool.

Otool is one of my favourite reversing tools since I work a lot from
The introduction of LC_MAIN as replacement for LC_UNIXTHREAD lost the entrypoint address information.
Now you need to calculate the address, which is a another step and I'm too lazy for that!

I also modified the output of some fields to hexadecimal values because I also hate to convert
those values all the time.

The -z option was added. It will invert the current PIE flag, remove if set, set if removed.
It's something I use from time to time and it's faster than loading into MachOView and changing there.

The -O option was added. It's used to point the file offset where the mach-o header is located.
Usually it's at the beginning of the file, but this option makes it possible for example to dump
embedded headers in data or binaries files.

If you have any suggestions or improvements feel free to contact me, send patches, etc.

Darwinbuild is not needed anymore to compile! Just go to the cctools folder and type make.
If you just want to build otool you need to:
- First go to libstuff folder and type make.
- Now go to otool folder and type make. Output is otool.NEW.

TRIE support had to be removed. Only the strip util uses it so damage is not big.

For historic references, if you want to use darwinbuild:


Something went wrong with that request. Please try again.