Parsing an already-loaded Mach-O binary in memory...
Sometimes the string table, symbol table, etc, are where they should be, and sometimes they're 0x1000 off.
For example, I might run my program and baseOffset + cmd->symoff
is accurate. Then I'll unit test and baseOffset + cmd->symoff + 0x1000
is accurate. baseOffset
is always valid and pointing to a valid Mach header.